python - Tensorflow中如何使用image_summary查看不同批处理的图片?

标签 python deep-learning tensorflow

我很好奇 image_summary 是如何工作的。有一个名为 max_images 的参数,它控制显示多少张图像。但是,摘要似乎只显示一批中的图像。如果我们使用更大的 max_iamges 值,我们将只查看批处理中的更多图像。有没有一种方法可以让我查看例如每批处理中的一张图片?

最佳答案

要查看每批中的一张图像,您需要获取 tf.image_summary() 的结果op 每次你运行一个步骤。例如,如果您有以下设置:

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)

...您可以将训练循环设置为每次迭代捕获一张图像,如下所示:

for _ in range(10000):
    _, image_summary = sess.run([train_op, image_summary_t])
    summary_writer.add_summary(image_summary)

请注意,捕获每个批处理的摘要可能效率低下,您可能应该只定期捕获摘要以加快训练速度。

编辑:上面的代码为每个图像写了一个单独的摘要,因此您的日志将包含所有图像,但它们不会全部显示在 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()

关于python - Tensorflow中如何使用image_summary查看不同批处理的图片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35005691/

相关文章:

tensorflow - Google Colab - 您的 session 因未知原因崩溃

python - 在 keras-python 中使用 ImageDataGenerator 进行数据增强

android - TensorFlow-Lite 预训练模型在 Android 演示中不起作用

python - win32 上的条目消息 : [MSC v. 1500 64 位 (AMD64)]

machine-learning - 故意过度拟合神经网络

未找到 CMAKE 中的 Python_LIBRARIES

python - 图像中颜色和纹理的均匀性

tensorflow - 尝试在 tensorflow 中训练 mobilenet 时出现 ERROR : Config value cuda is not defined in any . rc 文件

python - 将 Oracle Instant 客户端安装到 Python cx_Oracle 的 Docker 容器中

Python weekday() 用于获取星期日为 1 和星期六为 7