张量理解

只愿长相守 提交于 2020-01-29 12:34:34
import tensorflow as tf
import tensorflow.compat.v1 as tf#设置为v1版本
tf.disable_v2_behavior()#禁用v2版本
#首先,要了解一个叫张量的东西,到时候在节点之间流通的就是它了
#理解方式:我认为用数组理解就够了,张量的结束就是数组的维数
#不用扯什么立体,矩阵,列表,向量之类的东西,实例如下:
#零维数组:
# x=0
#一维数组:
#x=[1,2,3,4,5,7,8,9,10]
#二位数组:
#x=[ [a11,a12,a13,a14,a15,a16,a17]
#    [a21,a22,a23,a24,a25,a26,a27]
#    [a31,a32,a33,a34,a35,a36,a37]
#    [a41,a42,a43,a44,a45,a46,a47] ]
#三位数组:
#x=[ [[a111,a112],[a121,a122],[a131,a132]]
#    [[a211,a212],[a221,a222],[a231,a232]]
#    [[a311,a312],[a321,a322],[a331,a332]]
#  ]
#一维数组就是把一个数扩展为一列数,
#二维数组就是把一维数组中的每一个数都变成一列数,
#三位数组就是把二位数组中的每一个数组继续扩展为一列数,
#可以在命名方式中体现这一点,一个n维数组中的元素命名为:
#a(1x)(2y)...(ni),其中ni就是它在第n维数组中的下标.
#反正升维就是一个把终端变为指针的过程,不断拓宽引用的过程.
a=tf.constant([1.0,2.0])
b=tf.constant([3.0,2.0])
y=a+b
print(y)#Tensor("add:0", shape=(2,), dtype=float32)
a1=tf.constant([[[1,2],[3,4]],
                [[5,6],[7,8]]])
a2=tf.constant([[[8,7],[6,5]],
                [[4,3],[2,1]]])
y1=a1+a2
print(y1)#Tensor("add_1:0", shape=(2, 2, 2), dtype=int32)
a3=tf.constant(
    [
        #a1
        [[[111],[112]],[[121],[122]],[[131],[132]]
            ],
        #a2
        [
          [[211],[212]],[[221],[222]],[[231],[232]]
        ],
        #a3
        [
            [[311],[312]],[[321],[322]],[[331],[332]]
        ],
        #a4
        [
            [[411],[412]],[[421],[422]],[[431],[432]]
        ]

                                ]
)
y2=a3+a3
print(y2)#Tensor("add_2:0", shape=(4, 3, 2, 1), dtype=int32),这个4321是我故意的
#所以说shape的括号里显示的应该依次是一维数组中元素的个数,二位数组中元素的个数,三位数组中元素的个数

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!