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