【问题标题】:How to use `tf.gradients`? `TypeError: Fetch argument None has invalid type <type 'NoneType'>`如何使用`tf.gradients`? `TypeError: Fetch argument None has invalid type <type 'NoneType'>`
【发布时间】:2018-04-30 09:52:28
【问题描述】:

我收到此错误:TypeError: Fetch argument None has invalid type &lt;type 'NoneType'&gt;

我想计算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的结果。

【问题讨论】:

    标签: python-2.7 tensorflow gradient


    【解决方案1】:

    tf.gradients() 计算 ys 关于 xs 的导数。所以你的论点倒退了。试试这个:

    t_gradients = tf.gradients( ys = loss, xs = m_leftOps2 )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-25
      • 1970-01-01
      • 1970-01-01
      • 2016-11-13
      • 1970-01-01
      • 2022-08-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多