在下面的代码中,在训练阶段,每个sess.run()都在一个数据点中输入 .
# Mean squared error
cost = tf.reduce_sum(tf.pow(pred-Y, 2))/(2*n_samples)
# Gradient descent
optimizer = tf.train.GradientDescentOptimizer(learning_rate).minimize(cost)
:
:
with tf.Session() as sess:
sess.run(init)
# Fit all training data
for epoch in range(training_epochs):
for (x, y) in zip(train_X, train_Y):
sess.run(optimizer, feed_dict={X: x, Y: y})
:
基于优化器的定义,它试图最小化成本 . 对于成本函数J(r),优化器应使用以下方法更新成本函数的参数r:
r := r - alpha* dJ(r)/dr 其中 alpha 是学习率
对于输入的每个数据点,它将更新参数r一次,这意味着优化器会记住先前馈送的结果 .
这是否意味着TensorFlow session.run(),它确实存储了前一个session.run()的优化器结果?
那么session()如何定义?是通过每次运行()记住在同一会话中计算的所有内容,直到session()结束?谢谢!