Я пытался протестировать мой код с использованием тензорного потока, я установил скорость обучения 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, 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)
.