2016-11-25 50 views
0

我試圖儘量減少與大小n*m 定義了一個變量張量的簡單損失的問題是當我跑步時的優化,我有以下錯誤:Tensorflow:reduce_prod漸變破損?

ValueError: Shape() must have rank 1 

好奇的是,如果不是tf.reduce_prod我使用tf.reduce_sum,它工作得很好,但損失的形狀保持不變。 任何人都可以嘗試這個,並告訴我,如果結果是在別處相同?

def someloss(a): 
    da=tf.reduce_prod(a,reduction_indices=1) 
    return tf.reduce_mean(tf.sqrt(tf.square(da))) 

n=5 
m=2 
a=tf.Variable(tf.random_normal([n,m],mean=1.0, stddev=0.35)) 
cost=someloss(a) 
opt = tf.train.AdamOptimizer().minimize(cost) 
sess = tf.Session() 
init = tf.initialize_all_variables() 
with sess.as_default(): 
    sess.run(init) 
    for i in range(100): 
     sess.run(opt) 
+0

不能重現... – sygi

+0

它適合你嗎?你沒有錯誤? – user3575801

+0

是的,它適用於我。 – sygi

回答

0

OP自我解決的問題:這是一個old TensorFlow bug已定長1.0版本之前,應該不再是相關的人。