Python 关于tensorflow梯度降阶器的几个问题
我尝试使用tensorflow测试我的代码,我将GradientDescentOptimizer学习率设置为1,并输出Wx1旧权重、新权重和梯度。但是新的重量旧的权重-1*梯度,我不知道为什么会导致这种情况Python 关于tensorflow梯度降阶器的几个问题,python,tensorflow,gradient-descent,Python,Tensorflow,Gradient Descent,我尝试使用tensorflow测试我的代码,我将GradientDescentOptimizer学习率设置为1,并输出Wx1旧权重、新权重和梯度。但是新的重量旧的权重-1*梯度,我不知道为什么会导致这种情况 Wx1旧值[[-0.0016595601,.]] 年级[-0.02760417,…] Wx1新值[[-0.0016706019,…]] 批次数据X维度为500*1000,Y维度为500*30。Wx1尺寸为1000*512,梯度尺寸也为1000*512 loss = net.loss(x, y
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)
我解决了这个问题,但仍然不知道为什么。我解决了这个问题,但仍然不知道为什么。