咨询TensorFlow中tf.ones([1,2,3])的张量秩数及首维1的含义
关于
tf.ones形状参数与张量秩的解答 你运行的代码与输出如下:
tensor1 = tf.ones([1,2,3]) print(tensor1)
tf.Tensor( [[[1. 1. 1.] [1. 1. 1.]]], shape=(1, 2, 3), dtype=float32)
关键知识点说明
- 张量的秩(也叫阶)等于形状(shape)参数的元素个数,你创建的这个张量shape有3个值,因此属于秩3张量,不是秩2。判断秩最直观的方法就是数输出里的方括号嵌套层数,这里一共有3层方括号嵌套,对应秩3。
- 传入
tf.ones的形状列表是从最外层维度到最内层维度依次排列的,不存在“参数代表内部包含维度数”的逻辑,每个位置的数字都对应当前维度的长度:- 最开头的
1:对应最外层维度长度为1,也就是最外层方括号内只包含1个元素,这个元素本身是一个形状为[2,3]的二维结构,和输出里最外层只包了一整块二维数组的表现完全一致。 - 中间的
2:对应第二层维度长度为2,也就是刚才提到的二维结构里包含2个一维数组,对应输出里第二层方括号下有2行[1. 1. 1.]。 - 末尾的
3:对应最内层维度长度为3,也就是每个最内层一维数组里有3个值为1的元素,这部分和你之前的理解是对的。
- 最开头的
快速核对技巧
你可以对着输出从外到内数每层方括号里的元素数量,数出来的结果正好和shape列表从左到右的值一一对应,遇到不确定形状的张量时用这个方法核对就不会出错。
内容的提问来源于stack exchange,提问作者lei
相关产品推荐
相关产品推荐

