打印 TensorFlow 中优化器最小化的损失值
Printing the value of loss that is minimized by an optimizer in TensorFlow
我想打印已被优化器最小化的损失值。这是一个例子:
LEARNING_RATE = 0.0001
MOMENTUM = 0.999
mean_squared_error = tf.reduce_mean(tf.square(tf.sub(predictions, training_outputs)))
train_step = tf.train.MomentumOptimizer(LEARNING_RATE, MOMENTUM).minimize(mean_squared_error)
# Load data
features = ...
labels = ...
# Launch TensorFlow session
with tf.Session() as session:
session.run(initialize)
print("Begin training...")
session.run(train_step, feed_dict={training_inputs: features, training_outputs: labels})
print("Finished training! The mean squared error is: _____")
既然我已经最小化了 mean_squared_error
,我该如何打印它的最小值?
可视化损失的最简单方法是创建它的标量摘要:
mean_squared_error = tf.reduce_mean(tf.square(tf.sub(predictions, training_outputs)))
loss_summ = tf.scalar_summary("loss", mean_squared_error)
然后您在 TensorFlow 会话中创建编写器,并将摘要 loss_summ
添加到 sess.run()
调用。然后您在 mse_val
中取回值并可以打印它。
with tf.Session() as session:
writer = tf.train.SummaryWriter("log", session.graph_def)
session.run(initialize)
print("Begin training...")
_, mse_val, summ = session.run([train_step, mean_squared_error, loss_summ], feed_dict={training_inputs: features, training_outputs: labels})
writer.add_summary(summ)
print("Finished training! The mean squared error is: %f" % mse_val)
作为奖励,您甚至可以通过 运行 tensorboard --logdir log
(阅读 this tutorial 了解更多详细信息)可视化 TensorBoard 中损失的演变。
P.S:您的代码仅运行 1 次迭代训练,您可能需要添加一个循环。
我想打印已被优化器最小化的损失值。这是一个例子:
LEARNING_RATE = 0.0001
MOMENTUM = 0.999
mean_squared_error = tf.reduce_mean(tf.square(tf.sub(predictions, training_outputs)))
train_step = tf.train.MomentumOptimizer(LEARNING_RATE, MOMENTUM).minimize(mean_squared_error)
# Load data
features = ...
labels = ...
# Launch TensorFlow session
with tf.Session() as session:
session.run(initialize)
print("Begin training...")
session.run(train_step, feed_dict={training_inputs: features, training_outputs: labels})
print("Finished training! The mean squared error is: _____")
既然我已经最小化了 mean_squared_error
,我该如何打印它的最小值?
可视化损失的最简单方法是创建它的标量摘要:
mean_squared_error = tf.reduce_mean(tf.square(tf.sub(predictions, training_outputs)))
loss_summ = tf.scalar_summary("loss", mean_squared_error)
然后您在 TensorFlow 会话中创建编写器,并将摘要 loss_summ
添加到 sess.run()
调用。然后您在 mse_val
中取回值并可以打印它。
with tf.Session() as session:
writer = tf.train.SummaryWriter("log", session.graph_def)
session.run(initialize)
print("Begin training...")
_, mse_val, summ = session.run([train_step, mean_squared_error, loss_summ], feed_dict={training_inputs: features, training_outputs: labels})
writer.add_summary(summ)
print("Finished training! The mean squared error is: %f" % mse_val)
作为奖励,您甚至可以通过 运行 tensorboard --logdir log
(阅读 this tutorial 了解更多详细信息)可视化 TensorBoard 中损失的演变。
P.S:您的代码仅运行 1 次迭代训练,您可能需要添加一个循环。