我收到此错误:TypeError: Fetch argument None has invalid type <type 'NoneType'>
我想计算loss
w.r.t的渐变。 m_leftops2
:
t_im0 = tf.placeholder(tf.float32, [None, None, None, None], name='left_img')
t_im1 = tf.placeholder(tf.float32, [None, None, None, None], name='right_img')
strides=[1,1,1,1]
m_leftOps2 = tf.tanh(tf.nn.conv2d(t_im0, w1, strides=strides, padding=padding, data_format="NCHW")+b)
m_rightOps2 = tf.tanh(tf.nn.conv2d(t_im1, w1, strides=strides, padding=padding, data_format="NCHW")+b)
loss = tf.reduce_sum(m_leftOps2 * m_rightOps2)
t_gradients = tf.gradients(xs=loss, ys=[m_leftOps2])
with tf.Session(config=config) as sess:
sess.run(tf.global_variables_initializer())
feed_dict = {t_im0: normalized_i1, t_im1: normalized_i2}
print("gradients: ", sess.run([loss, t_gradients], feed_dict=feed_dict))
如果我计算m_leftOps2
的渐变,我应该得到结果m_rightOps2
。
答案 0 :(得分:1)
tf.gradients()
针对 xs 计算 ys 的衍生产品。所以你的论点倒退了。试试这个:
t_gradients = tf.gradients( ys = loss, xs = m_leftOps2 )