在TensorFlow中将矩阵乘以标量的最佳方法是什么? 我只是想通过一些标量值来扩展矩阵。
谢谢!
答案 0 :(得分:5)
您可以使用 element-wise tf.mul()
操作将矩阵(或任何其他张量)乘以标量,该操作隐式广播其参数以匹配大小:
x = tf.constant([[1.0, 0.0], [0.0, 1.0]])
y = tf.mul(x, 2.0)
sess = tf.Session()
print sess.run(y)
# ==> [[2.0, 0.0], [0.0, 2.0]]
答案 1 :(得分:2)
scalar_mul(scalar, x)
将标量乘以Tensor
或IndexedSlices
对象。
拟用于可能处理IndexedSlices
的渐变代码
对象,很容易通过标量乘以但更昂贵
乘以任意张量。
参数数量:
标量:0-D标量Tensor
。必须有已知的形状。
x:要缩放Tensor
或IndexedSlices
。
返回:
与scalar * x
相同类型的Tensor
(IndexedSlices
或x
)。
答案 2 :(得分:2)
非常简单:
标量*矩阵
TensorFlow将其转换为tf.multiply并广播所有内容。
答案 3 :(得分:0)
等效变体:
x = tf.constant([[1.0, 0.0], [0.0, 1.0]]
y1 = tf.scalar_mul(-1.0, x)
y2 = tf.multiply(-1.0, x)
y3 = -1.0 * x
输出:
sess.run(y1)
array([[-1., -0.],
[-0., -1.]], dtype=float32)
sess.run(y2)
array([[-1., -0.],
[-0., -1.]], dtype=float32)
sess.run(y3)
array([[-1., -0.],
[-0., -1.]], dtype=float32)