赞
踩
张量(Tensor):可理解为一个 n 维矩阵,所有类型的数据,包括标量(Scalar)、矢量(Vector)、矩阵(Matrix) 等都是特殊类型的张量。
张量(Tensor): 是对矢量和矩阵向潜在的更高维度的泛化。TensorFlow 在内部将张量表示为基本数据类型的 n 维数组。
张量(Tensor) 所有维度数dim > 2的数组统称为张量。
张量的每个维度也做轴(Axis), 一般维度代表了具体的物理含义,比如Shape为[2,32,32,3]的张量共有4 维,如果表 示图片数据的话,每个维度/轴代表的含义分别是:
其中2 代表了 2 张图片,32代表了高宽均为32, 3 代表了 RGB 3 个通 道。张量的维度数以及每个维度所代表的具体物理含义需要由用户自行定义。
在TensorFlow中间,为了表达方便,一般把标量、向量、矩阵也统称为张量,不作区 分,需要根据张量的维度数和形状自行判断。
TensorFlow 支持以下三种类型的张量(Tensor):
张量只能通过TensorFlow来创建,不能通过python的语法创建
标量(Scalar)单个的实数,如1.2,3.4等,维度数(Dimension,也叫秩)为0
, shape为[]
实例:a = tf.constant(1.0) 即创建了一个张量(标量)
向量(Vector)n个实数的有序集合,通过中括号包裹,如[2], [1.2,3.4]等,维度数为
1
, 长度不定,shape为[n]
向量只可以通过数组list的形式进行创建。比如向量(1,2,2,5,6)和(1,2),只要它是一个向量,维度都是1,但是shape=[n]不一样,注意区分 维度 和 shape。
a = tf.constant ( [1.] )
一个元素的向量、一维、shape为1a = tf.constant ( [1.,2.,6.] )
三个元素的向量、一维、shape为3矩阵(Matrix)n行 m 列实数的有序集合,如[[1,2], [3,4]],也可以写成:
[
1
2
3
4
]
[1234]
维度数为2 , 每个维度上的长度不定,shape为: [ n , m ] [n,m] [n,m]
例子:
a = tf.constant([[1,2], [3,4]])
二维 shape为:(2,2)
维度数为3 , 每个维度上的长度不定,shape为: [ l , n , m ] [l, n,m] [l,n,m]
例子:
a = tf.constant
([
[[1,2],[6, 8]],
[[1,2],[6, 8].],
[[1,2],[6, 8]]
])
三维 shape为:(3,2,2)
为了区分:
TensorFlow增加了 一种专门的数据类型来支持梯度信息的记录:tf.Variable。
tf.Variable类型在普通的张量类型基础上添加了 name, trainable等属性来支持计算图的构建。
由于梯度运算会消耗大量的计算资源,而且会自动更新相关参数,
通过tf.Variable。函数可以将普通张量转换为待优化张量:
张量“变量”通过使用变量类来创建。
变量的定义还包括应该初始化的常量/随机值。
下面的代码中创建了两个不同的张量变量 t_a 和 t_b。两者将被初始化为形状为 [50,50] 的随机均匀分布,最小值=0,最大值=10:
注意:变量通常在神经网络中表示权重和偏置。
待优化张量可看做普通张量的特殊类型,普通张量也可以通过GradientTape.watch()方法临时加入跟踪梯度信息的列表。
参考资料:
TensorFlow基础-数据类型
tensorflow2.0 基础一 常用数据类型及转换
tensorflow基础-数据类型
tensorflow基础之张量(Tensor)、阶(Rank)、计算图(Graph)、节点(Node)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。