TensorflowニューラルネットワークTypeError:Fetch引数に無効なタイプがあります


11

私はテンソルフローを使用して単純なニューラルネットワークを作成していますが、自分で収集したデータを使用していますが、それは協力的ではありません:PIは、修正できない、または修正を見つけることができないエラーに遭遇しました。

エラーメッセージ:

TypeError:2861.6152のFetch引数2861.6152に無効なtypeが含まれています。文字列またはTensorでなければなりません。(float32をTensorまたはOperationに変換できません。)

エラーは私のコードの次の行を参照しています:

_, cost = tf_session.run([optimizer, cost], feed_dict = {champion_data: batch_input, item_data: batch_output})

コードで次の行をコメントアウトしてもエラーが発生しないことはすでにわかっています。

prediction = neural_network_model(champion_data)
cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(prediction, item_data))
optimizer = tf.train.AdamOptimizer().minimize(cost)
_, cost = tf_session.run([optimizer, cost], feed_dict = {champion_data: batch_input, item_data: batch_output})

したがって、これらの行の1つが、期待どおりに表示されないものを取得しています。私はすでに明白なことを試しました(batch_inputとbatch_outputからnp.array()を削除するか、それをlist()で置き換えます)が、それは問題を解決しません。私の現在の仮説は、neural_network_model(champion_data)の出力が何らかの形で間違った形またはタイプであるというものですが、それをテストする方法、またはそうであることが判明した場合の解決方法はわかりません。

完全なコードはここにあります:https : //gist.github.com/HasseIona/4bcaf9f95ae828e056d5210a2ea07f88

編集:neural_network_modelに入力されるチャンピオンデータ、予測、およびコストがすべてテンソルであることを確認しました。私は問題がなんとかしてコードのfeed_dict = {}の部分にあるという仮説を使用して問題を解決しようとしましたが、今のところどこにも行きません

回答:


17

問題は2つの場合に「コスト」という名前を使用することにありました。これを変更することで問題は解決しました。

_, cost = tf_session.run([optimizer, cost], feed_dict = {champion_data: batch_input, item_data: batch_output})

これに:

_, c = tf_session.run([optimizer, cost], feed_dict = {champion_data: batch_input, item_data: batch_output})

このようにして、変数「c」の名前がコードの[optimizer、cost]部分と衝突することはもうありません。


驚くほど役に立つ答え
lenhhoxung
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.