我正在使用tensorflow来加速僵硬的化学求解器。在这个过程中,我经常要计算tf.pow(a,b),其中a是张量,b是常数。在分析期间,我发现tf.pow非常慢,甚至比tf.exp慢。我对此感到惊讶所以我将功率计算为tf.exp(tf.log(a)* b)并计时。令我惊讶的是,exponental日志的速度是tf.pow的两倍。这是为什么?这是非常意外的。
我应该提到我使用单精度浮点数作为我的张量,并且我在使用带有conda的pip安装的whl文件的CPU上运行python 3.6和tf v1.5的窗口
答案 0 :(得分:0)
我相信Tensorflow的exp
和pow
操作正在调用Eigen的实现。看来Eigen正在使用exp
的SIMD说明,而不是pow
:https://eigen.tuxfamily.org/dox/group__CoeffwiseMathFunctions.html