关于一个张量的shape的理解,可以参考《tensorflow中张量维度—Shape参数理解》这篇博文,该博文讲的已经比较全面。
我在这里补充一下:
- 一个Tensor的打印信息中
shape=()
表示该张量是标量(scalar) - 一个Tensor的打印信息中
shape=(n,)
表示该张量是一个1
维张量(如:tf.constant([1, 2, 3, …, n])
),即该张量只有1
对[]
,访问其中的某个单个数字,需要1
个索引,dim=1
,rank=1
。并且注意shape=(n,)
中一定会有一个,
不会写作shape=(n)
。 - 一个类Tensor(如TensorSpec)的打印信息中
shape=(None, n)
或shape=(None,)
,其中None
表示该维度存在,但是长度(或sizes
)未知。如shape=(None, n)
的张量有两个维度(也就是两对[]
),其中第一个维度sizes
未知。