こんにちは私はTensorflowがトレーニングデータ用に選択した数字が気に入らないという問題に直面しています。私はTensorflowの「Getting started」チュートリアルからコードを借りましたが、x_train
とy_train
のデータリストを別のものに置き換えました。リストx_train
とy_train
でそれらの値のために今Tensorflowがリスト内の数字を正しく認識しない
import numpy as np
import tensorflow as tf
# Model parameters
W = tf.Variable([.3], dtype=tf.float32)
b = tf.Variable([-.3], dtype=tf.float32)
# Model input and output
x = tf.placeholder(tf.float32)
linear_model = W * x + b
y = tf.placeholder(tf.float32)
# loss
loss = tf.reduce_sum(tf.square(linear_model - y)) # sum of the squares
# optimizer
optimizer = tf.train.GradientDescentOptimizer(0.01)
train = optimizer.minimize(loss)
# training data
x_train = [1.0, 1.5 ,3.0, 6.0, 8.0, 9.0, 11.0, 12.0,38.0 ,41.0, 82.0]
y_train = [9.5,10.75,14.5,22.0,27.0,29.5,34.5,37,102.0,109.5,212.0]
# training loop
init = tf.global_variables_initializer()
sess = tf.Session()
sess.run(init) # reset values to wrong
#print(sess.run(init))
for i in range(1000):
sess.run(train, {x:x_train, y:y_train})
# evaluate training accuracy
curr_W, curr_b, curr_loss = sess.run([W, b, loss], {x:x_train, y:y_train})
print("W: %s b: %s loss: %s"%(curr_W, curr_b, curr_loss))
コード出力Nan
。私は、それぞれ2.5と7.0に収束しW
とb
の値を期待している:それは働くためにオリジナルx_train
とy_train
データが
x_train = [1,2,3,4]
y_train = [0,-1,-2,-3]
EDITです。
エラーはありませんか?しかし、 'W'、' b'、 'loss'(現在の値)のNaN値は頭痛の原因になっていますか? –
これは違いがありますが、ワーキングリストと混合値には 'int'値だけでなく、動作しないリストの余分な空白文字があるのかどうかわかりません。配列をフォーマットし、データ型を指定します。 – Chris
@Chrisは変数を浮動小数点として宣言していますので、テンソルフローは 'ints 'のように見えてもそれらをdtypeにキャストします。 –