tf.constant([1,2,3])和tf.constant([[1,2,3]]之间有什么区别?

时间:2018-04-13 01:59:19

标签: python tensorflow

>>> tf.constant([1,2,3])
<tf.Tensor 'Const:0' shape=(3,) dtype=int32>
>>> tf.constant([[1,2,3]])
<tf.Tensor 'Const_1:0' shape=(1, 3) dtype=int32>

tf.constant([1,2,3])是否会创建标量并tf.constant([[1,2,3]])创建数组?

1 个答案:

答案 0 :(得分:2)

不完全。 tf.constant([1, 2, 3])创建秩1常数张量(向量)。因此形状为(3,)

>>> sess = tf.InteractiveSession()

>>> tf.constant([1, 2, 3]).eval()
array([1, 2, 3], dtype=int32)

虽然tf.constant([[1, 2, 3]])创建了一个2级常数张量(矩阵),但有1行和3列..所以它的形状是(1, 3)

>>> tf.constant([[1, 2, 3]]).eval()
array([[1, 2, 3]], dtype=int32)

如果你真的想要一个标量(等级0),你不会用序列来构造它,而只是用标量值构造它。

>>> tf.constant(3)
<tf.Tensor 'Const_5:0' shape=() dtype=int32>

注意这里的空形状,明确它是等级0.

请参阅文档中的Tensor/Rank