>>> 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]])
创建数组?
答案 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。