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

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

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

Chainerは、国産の深層学習フレームワークです。あらゆるニューラルネットワークをPythonで柔軟に書くことができ、学習させることが可能。GPUをサポートしており、複数のGPUを用いた学習も直感的に記述できます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

0回答

232閲覧

Chainerで学習済みモデルの読み込み時にUnpicklingErrorが出て読み込めません

nuii_

総合スコア15

Chainer

Chainerは、国産の深層学習フレームワークです。あらゆるニューラルネットワークをPythonで柔軟に書くことができ、学習させることが可能。GPUをサポートしており、複数のGPUを用いた学習も直感的に記述できます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2018/11/20 02:43

前提・実現したいこと

現在、ChainerでSeq2Seqを用いた対話生成を実装しています。
学習を行ったノート上では生成を行えるのですが、別ノートでモデルを読み込むとエラーが出て
自分では解決法が分からなかったため、どなたか助けていただけると幸いです。

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

TypeError Traceback (most recent call last) <ipython-input-37-60cceaa37c68> in <module>() 5 print(query, "=>", response) 6 ----> 7 predict(model, "初めまして。") 8 predict(model, "どこから来たんですか?") 9 <ipython-input-37-60cceaa37c68> in predict(model, query) 1 def predict(model, query): 2 enc_query = data_converter.sentence2ids(query, train=False) ----> 3 dec_response = model(enc_words=enc_query, train=False) 4 response = data_converter.ids2words(dec_response) 5 print(query, "=>", response) <ipython-input-34-bad8b6d5ee08> in __call__(self, enc_words, dec_words, train) 194 self.reset() # model内に保存されている勾配をリセット 195 enc_words = [chainer.Variable(xp.array(row, dtype='int32')) for row in enc_words] # 発話リスト内の単語をVariable型に変更 --> 196 self.encode(enc_words, batch_size) # エンコードの計算 197 t = chainer.Variable(xp.array([0 for _ in range(batch_size)], dtype='int32')) # <eos>をデコーダーに読み込ませる 198 loss = chainer.Variable(xp.zeros((), dtype='float32')) # 損失の初期化 <ipython-input-34-bad8b6d5ee08> in encode(self, words, batch_size) 144 # 順向きのEncoderの計算 145 for w in words: --> 146 c, h = self.f_encoder(w, c, h) 147 self.fs.append(h) # 計算された中間ベクトルを記録 148 # 内部メモリ、中間ベクトルの初期化 <ipython-input-34-bad8b6d5ee08> in __call__(self, x, c, h) 25 次の内部メモリ、次の隠れ層 26 """ ---> 27 e = F.tanh(self.xe(x)) 28 return F.lstm(c, self.eh(e) + self.hh(h)) 29 /usr/local/lib/python3.6/dist-packages/chainer/link.py in __call__(self, *args, **kwargs) 240 if forward is None: 241 forward = self.forward --> 242 out = forward(*args, **kwargs) 243 244 # Call forward_postprocess hook /usr/local/lib/python3.6/dist-packages/chainer/links/connection/embed_id.py in forward(self, x) 68 69 """ ---> 70 return embed_id.embed_id(x, self.W, ignore_label=self.ignore_label) /usr/local/lib/python3.6/dist-packages/chainer/functions/connection/embed_id.py in embed_id(x, W, ignore_label) 164 165 """ --> 166 return EmbedIDFunction(ignore_label=ignore_label).apply((x, W))[0] /usr/local/lib/python3.6/dist-packages/chainer/function_node.py in apply(self, inputs) 235 'Actual: {}'.format( 236 self.label, --> 237 ', '.join(str(type(x)) for x in in_data))) 238 239 is_debug = chainer.is_debug() TypeError: incompatible array types are mixed in the forward input (EmbedIDFunction). Actual: <class 'cupy.core.core.ndarray'>, <class 'numpy.ndarray'>

元ソースコード

全文は字数制限のため載せられませんでした。
Gin04様のAttention Seq2Seqで対話モデルを実装してみたを参考にし、テキストファイルを3次元配列として読み込み学習を行っています。

補足情報

実装はGoogle ColaboratoryでGPUを使用し行っています。

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問