我正在训练使用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秒。
如何优化图形,以尽量减少汇总运算时间成本?
当然摘要放慢训练过程中,因为你做更多的操作,你需要将它们写入光盘。此外,直方图摘要减缓培训甚至更多,因为你直方图需要更多的数据从GPU复制到CPU比标值。所以我会尝试使用直方图记录往往不及其余,这可能使一些差异。
通常的解决方法是计算汇总仅每隔X批次。既然你都计算摘要每批次只有一个每时期,而不是,它可能是值得一试就更少摘要记录。
取决于你有多少批次在你的数据集,但通常你不通过收集有点不太日志丢失太多的信息。