2016-11-25 1 views
0

내가 문제는 내가 최적화를 실행하고있을 때, 나는 다음과 같은 오류가 있습니다 크기 n*m 의 변수 텐서를 통해 정의 된 간단한 손실을 최소화하기 위해 노력하고있어이 :Tensorflow : reduce_prod 그라데이션이 깨졌습니다?

ValueError: Shape() must have rank 1 

호기심 것은 그 경우 대신하다 나는 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

영업 이익의 문제를 자기-해결 :이 1.0 릴리스 전에 오랫동안 고정되어 더 이상 다른 사람과 관련이 없어야합니다 old TensorFlow bug이었다.