Tensorflow 优化先乘后加

Tensorflow Optimizing multiply then add

通常在线性代数中优化常见的乘法运算,然后通过在输入中附加一个虚拟常量维度来进行加法运算,然后将整体变成一个乘法运算 (Wx + b => W'x')。

在 Tensorflow 中这样做是否有任何好处,或者它是否会优化它(例如 tf.matmul(...) + btf.matmul(...)

你说的不是提高速度、减少内存的优化。这只是一种缩短数学表达式的方法。

  • 内存没有减少,因为你没有向量 b 而只是 prepend/append 你的矩阵具有相同大小的列 b.
  • 即使您不计算 append/prepend 带有列的矩阵 W 所需的运算次数,您的矩阵乘法也会执行更多运算。如果您只是添加一个矢量来添加计算为 c_i * x_i.
  • n 元素,那么您可以添加 n 个元素 b_i

在 TF 中这样做没有任何好处(就 speed/memory 而言),不,TF 不会自行优化它。

如果你更容易阅读和理解那里发生的事情,你可以自由地这样写。