質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
PyTorch

PyTorchは、オープンソースのPython向けの機械学習ライブラリ。Facebookの人工知能研究グループが開発を主導しています。強力なGPUサポートを備えたテンソル計算、テープベースの自動微分による柔軟なニューラルネットワークの記述が可能です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

自然言語処理

自然言語処理は、日常的に使用される自然言語をコンピューターに処理させる技術やソフトウェアの総称です。

Q&A

解決済

1回答

2370閲覧

ImportError: cannot import name '〇〇'の解決策とgpt2モデル使用時のpytorch代替ライブラリ

sn_103

総合スコア1

PyTorch

PyTorchは、オープンソースのPython向けの機械学習ライブラリ。Facebookの人工知能研究グループが開発を主導しています。強力なGPUサポートを備えたテンソル計算、テープベースの自動微分による柔軟なニューラルネットワークの記述が可能です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

自然言語処理

自然言語処理は、日常的に使用される自然言語をコンピューターに処理させる技術やソフトウェアの総称です。

0グッド

0クリップ

投稿2021/09/13 01:39

### rinna/japanese-gpt2-mediumとtransformersについて

現在GUIアプリの一部にrinna/japanese-gpt2-mediumを使ったプログラムを作り、cx_Freezeにてexe化しようとしています。

setup.pyは問題なく実行でき、exeが作成されますが、exeファイル実行の際に、どうしても以下のようなImportError: cannot import name '〇〇'from 'torch'のエラーが出ます。最新バージョンのpython3.9とtorch1.9.0でも試しましたが、似たようなエラーが発生しました。

 そこでtransformersで使うフレームワークを、pytorch以外で代用できればと思っていますが、調べようにもgpt2解説サイトはtorchを基準にしているサイトが殆どですので、何を使うべきか、コードのどこを改変するべきかが分かりません。この二点についてご教授頂きたいのです。

ちなみにexe化の際にpyinstallerを使わない理由は、ファイルサイズが自然言語辞書込みで約950MBを超え実行速度に問題が出てしまうからになります。

発生している問題・エラーメッセージ

イメージ説明

該当のソースコード

setup

1import sys 2from cx_Freeze import setup, Executable 3 4base = None 5 6if sys.platform == 'win32': base = 'Win32GUI' 7packages = [] 8includes = ['wx', 'wx.xrc', 'wx.html', 'MeCab', 'matplotlib', 'neologdn', 'regex', 'sentencepiece', 9 'torch','unicodedata', 'random', 'ctypes', 'os', 'transformers', 'pymagnitude-light','annoy'] 10excludes = ['tkinter'] 11include_files = ['new.magnitude', 'NEologd'] 12exe = Executable(script='GUI.py', base=base) 13 14setup(name='name', 15 options={ 16 'build_exe': { 17 'packages': packages, 18 'includes': includes, 19 'excludes': excludes, 20 'include_files': include_files}}, 21 version='0.1', 22 description='converter', 23 executables=[exe]) 24

applicableGUIcode

1text = self.textctrl.GetValue() 2tokenizer = T5Tokenizer.from_pretrained(r"rinna/japanese-gpt2-medium") 3model_t = AutoModelForCausalLM.from_pretrained(r"rinna/japanese-gpt2-medium") 4input_t = tokenizer.encode(text, return_tensors="pt") 5generation = model_t.generate(input_t, do_sample=True, max_length=120, num_return_sequences=2) 6decode = tokenizer.batch_decode(generation)

試したこと

・python3.9とtorch1.9.0のバージョンを3.7や1.3.0に下げてsetup.py再実行/exe実行
・Tensorflowライブラリをインストールし、return_tensorsを"tf"へ、
AutoModelForCausalLMをTFAutoModelForCausalLMに変更

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/09/19 22:25 編集

確証はありませんが、問題はモジュール群ではなくインポート先が「デスクトップ」になっていて最後にこけた、というように見えます。よくある「パスに半角スペースをいれるな(\扱いになることがあるから)」「パスに全角文字を入れるな(2文字扱いになって読み込めないから)」が怪しいように思います。ダメ押しので半角文字英数だけでできたフォルダに中身を移して再コンパイルしてはいかがでしょうか?
guest

回答1

0

自己解決

ライブラリをincludesではなくpackagesに記述することで解決できました。

投稿2021/09/20 07:28

sn_103

総合スコア1

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問