1.1.1 标量
TensorFlow中标量最容易理解,它就是一个简单的数字,维度数为0,shape 为[]。标量的一些典型用途是误差值的表示、各种测量指标的表示,例如准确度(Accuracy,简称acc)、精度(Precision)和召回率(Recall)等。其中损失值和准确度均由张量计算产生,类型为标量,可以直接可视化为曲线图。
1.1.2 向量
向量是一种非常常见的数据载体,如在全连接层和卷积神经网络层中,偏置张量b使用向量表示。每个全连接层的输出节点都添加了一个偏置值,把所有输节点的偏置表示成向量形式。
1.1.3 矩阵
矩阵也是非常常见的张量类型,例如全连接层的批量输入张量X的形状为[b,d],其中b表示输人样本的个数,即 Batch Size,d表示输入特征的长度。例如特征长度为 4,一共包含2个样本的输人可以表示为矩阵:
x = tf.random.normal([2,4]) # 2个样本,特征长度为4的张量
令全连接层的输出节点数为3,则它的权值张量W的shape为[4,3],利用张量x、W 和向量b可以直接实现一个网络层,代码如下:
x = tf.random.normal([2,4]) # 2个样本,特征长度为4的张量
w = tf.ones([4,3])
b = tf.zeros([3])
o = x@w + b
print(o)
1.1.4 三维张量
三维的张量一个典型应用是表示序列信号,它的格式是
X=[b,sequencelen ,featurelen]
其中b
表示列信号的数量,sequencelen
表示序列信号在时间维度上的采样点数或步数featurelen
表示每个点的特征长度。
1.1.4 四维张量
四维张量在卷积神经网络中应用非常广泛,它用于保存特征图(FeatureMaps)数据,格式一般定义为[b,h,w,c]
,其中b
表示输入样本的数量,h/w
分别表示特征图的高/宽,c
表示特征图的通道数(PyTorch中使用[b,c,h,w]格式的特征图张量)。图片数据是特征图的一种,对于含有RGB3个通道的彩色图片,每张图片包含了h行w列像素点,每个点需要3个数值表示RGB通道的颜色强度,因此一张图片可以表示为[h,w,3]。
大于四维的张量一般应用的比较少!