【问题标题】:TensorFlow: information/variable remembered between each session.run()?TensorFlow:每个 session.run() 之间记住的信息/变量?
【发布时间】:2016-12-28 23:35:30
【问题描述】:

我正在通过以下示例学习 TensorFlow:https://github.com/aymericdamien/TensorFlow-Examples/blob/master/notebooks/2_BasicModels/linear_regression.ipynb

在以下代码中,在训练阶段,每个 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() 呢?并且是否通过每次 run() 记住同一会话中计算的所有内容,直到 session() 结束?谢谢!

【问题讨论】:

    标签: python-3.x tensorflow


    【解决方案1】:

    当您运行优化器时,它会调整参数以最小化损失函数。当您多次运行它时,它会随着时间的推移不断调整参数 - 没有一个参数被重置。

    您可以在每次运行优化器后对您的一个权重变量使用sess.run 来验证这一点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-18
      • 2020-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多