2016-12-09 34 views
0

私はJupyter Notebookで次のコードを実行しようとしましたが、placeholderの場合はInvalidArgumentErrorです。Tensorflow:プレースホルダのInvalidArgumentError

しかし、私はPythonスクリプトを書いてコマンドウィンドウで実行したところ、うまくいきました。私はノートブックでコードをどのように走らせることができるのか、知りたいのですが、ありがとうございます。

  • OS:Ubuntuの16.04 LTS
  • Tensorflowバージョン:0.12rc(ソースからインストール)

プログラムと出力:

enter image description here

enter image description here

コマンドウィンドウ:

enter image description here

各工場コード:

import tensorflow as tf 
import numpy as np 

raw_data = np.random.normal(10, 1, 100) 

# Define alpha as a constant 
alpha = tf.constant(0.05) 

# A placeholder is just like a variable, but the value is injected from the 
# session 
curr_value = tf.placeholder(tf.float32) 
# Initialize the previous average to some 

prev_avg = tf.Variable(0.) 
avg_hist = tf.summary.scalar("running_average", update_avg) 
value_hist = tf.summary.scalar("incoming_values", curr_value) 
merged = tf.summary.merge_all() 
writer = tf.summary.FileWriter("./logs") 
init = tf.global_variables_initializer() 

with tf.Session() as sess: 
    sess.run(init) 
    for i in range(len(raw_data)): 
    summary_str, curr_avg = sess.run([merged, update_avg], feed_dict={curr_value: raw_data[i]}) 
    sess.run(tf.assign(prev_avg, curr_avg)) 
    print(raw_data[i], curr_avg) 
    writer.add_summary(summary_str, i) 
+0

ようこそ。スクリーンショットではなく、実際のコードテキストを質問に入れてください。 http://stackoverflow.com/help/how-to-ask –

答えて

1

あなたraw_dataプレースホルダはのfloat32(デフォルトtensorflowのfloat型)であるのに対してのfloat64(デフォルトnumpyのフロートタイプ)です。明示的にデータをfloat32にキャストする必要があります

+0

ありがとうございました。私はあなたの答えに基づいてこの問題を修正しました。ちなみに、シェルで前のプログラムをうまく実行できる理由を知りたいのですが?ありがとう。 –

+0

おそらく、numpyのデフォルトをfloat32に設定するシェルの何か? –

関連する問題