【问题标题】:TensorFlow weight initialization taking 99% of total run timeTensorFlow 权重初始化占总运行时间的 99%
【发布时间】:2017-10-03 05:37:24
【问题描述】:

问题

我注意到我的一个网络运行缓慢,并且 nvidia-smi 报告的 GPU 使用率仅约为 10%。运行分析器后,我看到TruncatedNormal 进程占用了绝大多数运行时间(见图)。什么可能导致这种问题?

代码

权重声明函数(来自 MNIST 教程):

def weight_variable(shape):
    initial = tf.truncated_normal(shape, stddev=0.1)
    return tf.Variable(initial)

实际代码:

 # First Layer
    with tf.name_scope('input'):
        x = tf.placeholder(tf.float32, [None, Nvars])
    w1 = weight_variable([Nvars, 8])
    b1 = bias_variable([8])
    y1 = tf.nn.relu(tf.matmul(x, w1) + b1)

【问题讨论】:

    标签: performance optimization tensorflow profiling gpu


    【解决方案1】:

    问题在于您使用的 tensorflow 函数具有乘法属性。当 CPU 需要调用产品处理程序时,性能会呈指数级下降。

    如果内核预先支持计算,则可以避免该问题。您需要做的是使用编译器优化;即更改一些编译器设置,这将导致编译器“简化”乘法。

    或者...你不能乘以,只加几次。

    希望我能帮上忙。

    【讨论】:

    • 你的意思是 tf.truncated_normal() 有乘法性质吗?
    猜你喜欢
    • 2017-09-15
    • 1970-01-01
    • 2017-03-12
    • 1970-01-01
    • 2018-09-05
    • 2019-10-09
    • 1970-01-01
    • 2012-11-21
    相关资源
    最近更新 更多