标量
在 TensorFlow 中,标量最容易理解,它就是一个简单的数字,维度数为 0, shape 为[]。标量的一些典型用途是误差值的表示、 各种测量指标的表示,比如准确度(Accuracy,简称 acc),精度(Precision)和召回率(Recall)等。
向量
向量是一种非常常见的数据载体,如在全连接层和卷积神经网络层中,偏置张量b就使用向量来表示。
矩阵
矩阵也是非常常见的张量类型,比如全连接层的批量输入张量X的形状为[b, din],其中b表示输入样本的个数,即 Batch Size, din表示输入特征的长度。
三维张量
三维的张量一个典型应用是表示序列信号,它的格式是
X = [b, sequence len, feature len]
其中b表示序列信号的数量, sequence len 表示序列信号在时间维度上的采样点数或步数,feature len 表示每个点的特征长度。
考虑自然语言处理(Natural Language Processing,简称 NLP)中句子的表示,如评价句子的是否为正面情绪的情感分类任务网络。为了能够方便字符串被神经网络处理,一般将单词通过嵌入层(Embedding Layer)编码为固定长度的向量,比如“a”编码为某个长度 3 的向量, 那么 2 个等长(单词数量为 5)的句子序列可以表示为 shape 为[2,5,3]的 3 维张量,其中 2 表示句子个数, 5 表示单词数量, 3 表示单词向量的长度。
四维张量
这里只讨论三、四维张量,大于四维的张量一般应用的比较少,如在元学习(Meta Learning)中会采用五维的张量表示方法,理解方法与三、四维张量类似,不再赘述。
四维张量在卷积神经网络中应用非常广泛,它用于保存特征图(Feature maps)数据,格式一般定义为[b,ℎ,w,c],其中b表示输入样本的数量, ℎ/ w分别表示特征图的高/宽, c表示特征图的通道数, 部分深度学习框架也会使用[b, c, ℎ, w]格式的特征图张量,例如 PyTorch。 图片数据是特征图的一种, 对于含有 RGB 3 个通道的彩色图片,每张图片包含了ℎ行 列像素点,每个点需要 3个数值表示 RGB 通道的颜色强度,因此一张图片可以表示为[ℎ, w, 3]。
文章来源
本文完全来源于https://github.com/dragen1860/Deep-Learning-with-TensorFlow-book,感谢原作者的完美工作,这是tf2.0的内容,超级棒。我只是用jupter notebook学习一遍,供本文和大家参考。