Я пытаюсь минимизировать простую потерю, определенную по переменному тензору с размером 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)
не может воспроизвести ... – sygi
Он работает для вас? у вас нет ошибки? – user3575801
Да, это работает для меня. – sygi