2016-04-12 11 views
0

私はTensorFlowを学んでいるので、これは明らかです。私はドキュメントをチェックしてかなり実験したので、これを動作させるようには思えません。Tensor 'x_17:0'の形状( '、?)'の形状(500、)の値を入力できません。

def train_network(): 
    OUT_DIMS = 1 
    FIN_SIZE = 500 
    x = tf.placeholder(tf.float32, [OUT_DIMS, FIN_SIZE], name="x") 
    w = tf.Variable(tf.zeros([FIN_SIZE, OUT_DIMS]), name="w") 
    b = tf.Variable(tf.zeros([OUT_DIMS]), name="b") 
    y = tf.tanh(tf.matmul(x, w) + b) 

    yhat = tf.placeholder(tf.float32, [None, OUT_DIMS]) 
    cross_entropy = -tf.reduce_sum(yhat*tf.log(y)) 

    train_step = tf.train.GradientDescentOptimizer(0.01).minimize(cross_entropy) 

    # Launch the model 
    init = tf.initialize_all_variables() 
    sess = tf.Session() 
    sess.run(init) 

    for this_x, this_y in yield_financials(): 
     sess.run(train_step, feed_dict={x: this_x, 
             yhat: this_y}) 
     print(end=".") 
     sys.stdout.flush() 

yield_financials()は、500個の数字とそれが推測したい番号のnumpy配列を出力します。私はOUT_DIMSとFIN_SIZEをシャッフルしようとしましたが、チュートリアルの見た目に近いものをバッチに集めてみました。OUT_DIMSを0に設定してみました。完全に削除して、Noneを他の数字に置き換えようとしましたが、任意の進歩。

答えて

2

は、私は同じ問題を抱えていたし、私はこのproblem.Iが、それはuのために役立ちますことを願っています解決

this_x = np.reshape(this_x,(1, FIN_SIZE)) 
    sess.run(train_step, feed_dict={x: this_x, 
            yhat: this_y}) 
+0

Tensor 'Placeholder_50:0'のシェイプ( '、?)'のシェイプ()の値を入力できません。 – Ram

+0

また、Yも再作成しました(1,1)) 。私は実際に前にそれを試していた、進歩を得ていないと、それは行く方法ではないと思った。私は両方の形を変えることができなかった。ありがとう! – Ram

0

を試してみてください。最後に、私は中にセッションのグラフを起動形質

# convert the data 
trX, trY, teX, teY = train_data,train_label, test_data, test_label 
temp = trY.shape 
trY = trY.reshape(temp[0], 1) 
trY = np.concatenate((1-trY, trY), axis=1) 
temp = teY.shape 
teY = teY.reshape(temp[0], 1) 
teY = np.concatenate((1-teY, teY), axis=1) 

:TRX転換、そして

train_data = np.genfromtxt(train_data1, delimiter=',') 
train_label = np.transpose(train_label1, delimiter=',') 
test_data = np.genfromtxt(test_data1, delimiter=',') 
test_label = np.transpose(test_label1, delimiter=',') 

、TRY、TEX、TEYデータに:

は、まず、私はに負荷データを形質転換しました:

with tf.Session() as sess: 
    # you need to initialize all variables 
    tf.initialize_all_variables().run() 

    for i in range(100): 
      sess.run(train_op, feed_dict={X: trX, Y: trY})   
      print(i, np.mean(np.argmax(teY, axis=1) == sess.run(predict_op, feed_dict={X: teX}))) 

それだけです。

+0

ここで申し訳ありません第二の部分である:TRX転換、そして 、TRY、TEX、TEYデータに: 位データ TRX、TRY、TEX、TEY = train_data、train_label、TEST_DATA、test_label TEMP = trY.shape変換します trY = trY.reshape(temp [0]、1) trY = np.concatenate((1-trY、trY)、axis = 1) temp = teY.shape teY = teY.reshape(temp [0] 、1) テイ= np.concatenate((1-TEY、TEY)、軸= 1) e_all_variables()の範囲(100)内に)(iについて を実行します。 sess.run(train_op、feed_dict = {X:trX、Y:trY}) print(i、np.mean(np.argmax(teY、axis = 1)== sess.run(predict_op、feed_dict = {X:teX}))) それだけです。 – krystal

関連する問題