归总操作培训TensorFlow模型比没有汇总运算慢得多

问题描述 投票:5回答:1

我正在训练使用TensorFlow R1.0与Nvidia的GPU泰坦X的盗梦空间般的模型

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

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)

当我运行这些操作,培训一个划时代的时间成本是约400秒。但是,当我关掉这些操作,培训一个划时代的时间成本是90秒。

如何优化图形,以尽量减少汇总运算时间成本?

tensorflow tensorboard nvidia-titan
1个回答
0
投票

当然摘要放慢训练过程中,因为你做更多的操作,你需要将它们写入光盘。此外,直方图摘要减缓培训甚至更多,因为你直方图需要更多的数据从GPU复制到CPU比标值。所以我会尝试使用直方图记录往往不及其余,这可能使一些差异。

通常的解决方法是计算汇总仅每隔X批次。既然你都计算摘要每批次只有一个每时期,而不是,它可能是值得一试就更少摘要记录。

取决于你有多少批次在你的数据集,但通常你不通过收集有点不太日志丢失太多的信息。

© www.soinside.com 2019 - 2024. All rights reserved.