Da *_*ong 5 tensorflow tensorboard nvidia-titan
我使用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)
Run Code Online (Sandbox Code Playgroud)
当我运行这些操作时,训练一个纪元的时间成本约为400秒.但是当我关闭这些操作时,训练一个纪元的时间成本仅为90秒.
如何优化图表以最小化汇总操作时间成本?
摘要当然会减慢训练过程,因为您需要执行更多操作并且需要将它们写入光盘。此外,直方图摘要会进一步减慢训练速度,因为对于直方图,与标量值相比,您需要将更多数据从 GPU 复制到 CPU。因此,我会尝试比其他人更少地使用直方图记录,这可能会产生一些影响。
通常的解决方案是仅每 X 批次计算摘要。由于每个时期仅计算一个摘要,而不是每个批次,因此可能值得尝试更少的摘要日志记录。
取决于数据集中有多少批次,但通常收集较少的日志不会丢失太多信息。
| 归档时间: |
|
| 查看次数: |
1642 次 |
| 最近记录: |