如何在TensorFlow中进行矩阵标量乘法?

时间:2016-03-24 15:12:31

标签: tensorflow

在TensorFlow中将矩阵乘以标量的最佳方法是什么? 我只是想通过一些标量值来扩展矩阵。

谢谢!

4 个答案:

答案 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)

将标量乘以TensorIndexedSlices对象。

拟用于可能处理IndexedSlices的渐变代码   对象,很容易通过标量乘以但更昂贵   乘以任意张量。

参数数量:     标量:0-D标量Tensor。必须有已知的形状。     x:要缩放TensorIndexedSlices

返回:     与scalar * x相同类型的TensorIndexedSlicesx)。

答案 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)