gpt4 book ai didi

tensorflow - 使用汇总操作训练 TensorFlow 模型比没有汇总操作慢得多

转载 作者:行者123 更新时间:2023-12-04 21:34:18 26 4
gpt4 key购买 nike

我正在使用 TensorFlow r1.0 和 GPU Nvidia Titan X 训练一个类似 Inception 的模型。

我添加了一些汇总操作来可视化训练过程,使用的代码如下:

def variable_summaries(var):
"""Attach a lot of summaries to a Tensor (for TensorBoard visualization)."""
with tf.name_scope('summaries'):
mean = tf.reduce_mean(var)
tf.summary.scalar('mean', mean)
with tf.name_scope('stddev'):
stddev = tf.sqrt(tf.reduce_mean(tf.square(var - mean)))
tf.summary.scalar('stddev', stddev)
tf.summary.scalar('max', tf.reduce_max(var))
tf.summary.scalar('min', tf.reduce_min(var))
tf.summary.histogram('histogram', var)

当我运行这些操作时,训练一个 epoch 的时间成本约为 400 秒。但是当我关闭这些操作时,训练一个 epoch 的时间成本仅为 90 秒。

如何优化图形以最小化汇总操作的时间成本?

最佳答案

摘要当然会减慢训练过程,因为您执行更多操作并且需要将它们写入光盘。此外,直方图摘要会进一步减慢训练速度,因为对于直方图,与标量值相比,您需要将更多数据从 GPU 复制到 CPU。
所以我会尝试比其他人更少地使用直方图日志记录,这可能会有所不同。

通常的解决方案是只计算每 X 个批次的摘要。由于您每个时期仅计算一个摘要而不是每个批次,因此可能值得尝试更少的摘要日志记录。

取决于你的数据集中有多少批次,但通常你不会因为收集更少的日志而丢失太多信息。

关于tensorflow - 使用汇总操作训练 TensorFlow 模型比没有汇总操作慢得多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42406843/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com