关于tensorflow GradientDescentOptimizer的一些问题

时间:2019-03-27 03:57:05

标签: python tensorflow gradient-descent

我尝试使用tensorflow测试我的代码,将GradientDescentOptimizer学习速率设置为等于1,并输出Wx1旧权重,新权重和渐变。但是新重量!=旧重量-1 *梯度,我不知道为什么会导致这种情况。

  1. Wx1旧值[[-0.0016595601,....]]
  2. 毕业[[-0.02760417,....]]
  3. Wx1新值[[-0.0016706019,....]]

批生产数据X尺寸为500 * 1000,Y尺寸为500 * 30。 Wx1尺寸为1000 * 512,渐变尺寸也为1000 * 512

loss = net.loss(x, y, keep_prob)
optimizer = tf.train.GradientDescentOptimizer(1).minimize(loss)
init = tf.global_variables_initializer()

with tf.Session() as sess:
   sess.run(init)
   for X, Y, tot in data.next_batch('train'):
       feed_dict = {x: X,
                    y: Y}
       Wx1 = net.Wx1
       Wx1_val_old = sess.run(Wx1)
       grads = sess.run(tf.gradients(loss, [Wx1]), feed_dict=feed_dict)[0]
       sess.run(optimizer, feed_dict=feed_dict)
       Wx1_val_new = sess.run(Wx1)

0 个答案:

没有答案