Tensorflow 优化先乘后加
Tensorflow Optimizing multiply then add
通常在线性代数中优化常见的乘法运算,然后通过在输入中附加一个虚拟常量维度来进行加法运算,然后将整体变成一个乘法运算 (Wx + b => W'x'
)。
在 Tensorflow 中这样做是否有任何好处,或者它是否会优化它(例如 tf.matmul(...) + b
与 tf.matmul(...)
)
你说的不是提高速度、减少内存的优化。这只是一种缩短数学表达式的方法。
- 内存没有减少,因为你没有向量
b
而只是 prepend/append 你的矩阵具有相同大小的列 b
.
- 即使您不计算 append/prepend 带有列的矩阵 W 所需的运算次数,您的矩阵乘法也会执行更多运算。如果您只是添加一个矢量来添加计算为
c_i * x_i
. 的 n
元素,那么您可以添加 n
个元素 b_i
在 TF 中这样做没有任何好处(就 speed/memory 而言),不,TF 不会自行优化它。
如果你更容易阅读和理解那里发生的事情,你可以自由地这样写。
通常在线性代数中优化常见的乘法运算,然后通过在输入中附加一个虚拟常量维度来进行加法运算,然后将整体变成一个乘法运算 (Wx + b => W'x'
)。
在 Tensorflow 中这样做是否有任何好处,或者它是否会优化它(例如 tf.matmul(...) + b
与 tf.matmul(...)
)
你说的不是提高速度、减少内存的优化。这只是一种缩短数学表达式的方法。
- 内存没有减少,因为你没有向量
b
而只是 prepend/append 你的矩阵具有相同大小的列b
. - 即使您不计算 append/prepend 带有列的矩阵 W 所需的运算次数,您的矩阵乘法也会执行更多运算。如果您只是添加一个矢量来添加计算为
c_i * x_i
. 的
n
元素,那么您可以添加 n
个元素 b_i
在 TF 中这样做没有任何好处(就 speed/memory 而言),不,TF 不会自行优化它。
如果你更容易阅读和理解那里发生的事情,你可以自由地这样写。