关于tensor的shape和dimension
刚把mnist又过了一遍,突然感觉对tensor的shape有了新的理解,虽然很基础,还是想分享一下
关于tensor的维度,也就是阶啦,从认知上理解,一维就是线(数组或者向量),二维就是面(矩阵),三维就是体(数据体),四维是数据阵列 等等等等;新的理解是在表现方式上的,也就是打印出的样子,例如:[ [1,1,1] [1,1,1] ]
显然它是二维的,因为一看就是一个矩阵,那如果 [ ] 多了又怎么判断呢,这是个取巧的办法,看第一个数字左边有几个 [ 就行了。
当然,还没进入正题,两个新的理解:
-
shape[2,3,4] 怎么表示咩?
首先有一个 [ ]
(记为一号[])
阔住所有的量,(所有的tensor最外层都会有一个[ ])[ ]
第一个参数“2”,表示一号 [ ] 中有2个大部分,
(记为二号[])
[[ ] [ ]]
第二个参数“3”,表示每个二号 [ ] 中有3个小部分,
(记为三号[])
[[ [] [] [] ] [ [] [] [] ]]
第三个参数“4”,表示每个三号 [ ] 中有4个数据
举个例子吧
tensor = tf.constant(1,[2,3,4])
'''
[ [ [1,1,1,1] [1,1,1,1] [1,1,1,1] ]
[ [1,1,1,1] [1,1,1,1] [1,1,1,1] ] ]
'''
这样应该就看的明白了
- 关于这个例子的思考(shape[2,3,4] 中参数2,3,4究竟表示的是什么?)
第一个参数“2”表示在第一维中有2个元素,也就是上面所说的2个二号 [ ] ,
第二个参数“3”表示第二维中有3个元素,也就是上面所说的3个三号 [ ] ,
第三个参数“4”自然也就是表示第三维中有4个元素的意思,也就是上面说的每个三号 [ ] 中有4个数据
再总结一下,第n个参数就表示第n维中含有的元素
附上刚开始了解tensor时很有启发的一个视频 Dan Fleisch
这个老师很用心,视频很不错,12分钟了解tensor