Ton*_*hen 10 python deep-learning tensorflow
我很好奇image_summary是如何工作的.有一个名为max_images的参数,用于控制显示的图像数量.但是,总结似乎只显示一批中的图像.如果我们使用更大的max_iamges值,我们将只查看批次中的更多图像.有没有办法可以查看每批产品中的一张图片?
要从每个批处理中查看一个图像,您需要tf.image_summary()在每次运行步骤时获取操作的结果.例如,您有以下设置:
images = ...
loss = ...
optimizer = ...
train_op = optimizer.minimize(loss)
init_op = tf.initialize_all_variables()
image_summary_t = tf.image_summary(images.name, images, max_images=1)
sess = tf.Session()
summary_writer = tf.train.SummaryWriter(...)
sess.run(init_op)
Run Code Online (Sandbox Code Playgroud)
...您可以将训练循环设置为每次迭代捕获一个图像,如下所示:
for _ in range(10000):
_, image_summary = sess.run([train_op, image_summary_t])
summary_writer.add_summary(image_summary)
Run Code Online (Sandbox Code Playgroud)
请注意,捕获每个批次的摘要可能效率低下,您应该只定期捕获摘要以加快培训速度.
编辑:上面的代码为每个图像写了一个单独的摘要,因此您的日志将包含所有图像,但它们不会全部在TensorBoard中可视化.如果要将摘要组合在一起以可视化来自多个批次的图像,则可以执行以下操作:
combined_summary = tf.Summary()
for i in range(10000):
_, image_summary = sess.run([train_op, image_summary_t])
combined_summary.MergeFromString(image_summary)
if i % 10 == 0:
summary_writer.add_summary(combined_summary)
combined_summary = tf.Summary()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13097 次 |
| 最近记录: |