mean_sqr = tf.reduce_mean(tf.pow(y_ - y, 2))
optimizer = tf.train.AdamOptimizer(LEARNING_RATE)
gradients, variables = zip(*optimizer.compute_gradients(mean_sqr))
opt = optimizer.apply_gradients(list(zip(gradients, variables)))
init = tf.global_variables_initializer()
sess = tf.Session()
sess.run(init)
for j in range(TRAINING_EPOCHS):
sess.run(opt, feed_dict={x: batch_xs, y_: batch_xs})
我不明白compute_gradients返回什麼?它是否返回由batch_xs指定的給定x值的總和(dy/dx),並更新apply_gradients函數中的梯度,如:
theta < - theta - LEARNING_RATE * 1/m * gradients?compute_gradients在張量流中返回什麼
或者它已經返回給定批次中每個x值的總和的梯度平均值,例如sum(dy/dx)* 1/m,m被定義爲batch_size?
謝謝,你解釋得很好。 – user3104352