对Tensorflow中tensor的理解

时间:2023-05-28 10:38:50

Tensor即张量,在tensorflow中所有的数据都通过张量流来传输,在看代码的时候,对张量的概念很不解,很容易和矩阵弄混,今天晚上查了点资料,并深入了解了一下,简单总结一下什么是张量的阶,以及张量的shape是什么?

在tensorflow中,张量的维数被描述为“阶”,张量是以list的形式存储的。list有几重中括号,对应的张量就是几阶。如t=[ [1,2,3],[4,5,6],[7,8,9] ],t就是一个二阶张量。

我们可以认为,一阶张量,如[1,2,3],相当于一个向量,二阶张量,如[ [1,2,3],[4,5,6],[7,8,9] ],相当于一个矩阵。

对于t=[ [1,2,3],[4,5,6],[7,8,9] ]来说,它的shape==>[3,3],shape可以理解成:当脱去最外层的一对中括号后,里面有3个小list,然后每个小list里又有3个元素,所以该张量的shape==>[3,3]。

举几个例子,如[ [1,2,3],[4,5,6] ] 的shape=[2,3](因为当脱去最外层的一对中括号后,里面有2个小list,然后每个小list里又有3个元素,所以该张量的shape==>[2,3]。)

又如,[ [ [ [ 2 ], [ 2 ] ] , [ [ 2 ] ,  [ 2 ] ] , [ [ 2 ] ,  [ 2 ] ] ] ,  [ [ [ 2 ] ,  [ 2 ] ] ,  [ [ 2 ] ,  [ 2 ] ] ,  [ [ 2 ] ,   [ 2 ] ] ] ,  [ [ [ 2 ] ,  [ 2 ] ] , [ [ 2 ] , [ 2 ] ] , [ [ 2 ] , [ 2 ] ] ] , [ [ [ 2 ] , [ 2 ] ] , [ [ 2 ] ,  [ 2 ] ] , [ [ 2 ] , [ 2 ] ] ] ]的shape==>[4,3,2,1] (因为当脱去最外层的一对中括号后,里面有4个第二大的list,每个第二大的list里又有3个第三大的list,每个第三大的list里有2个第四大的list,每个第四大的list里有1个元素,所以该张量的shape==>[4,3,2,1]。