01 卷积运算张量维度问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了01 卷积运算张量维度问题相关的知识,希望对你有一定的参考价值。

参考技术A 动态过程:

滤波器(过滤器:filter)的权值是根据你要检测的特征来决定的,在深度学习中,也即是要经过训练得到。检测的特征不同,权值就不一样。

如上单层的图像一般表示的是灰白图,既是没有颜色的,有颜色的RGB图像,会包含三个相同大小的图层,这时对应的滤波器也要变成三层,滤波器的层数(通道数)必须时刻与图像层数保持一致。。。

注意输出的是一个单层图

因为当一个三通道的过滤器与图像进行卷积时,是直接对27个数去加权计算它们的和得到一个结果,而不是分层计算。

卷积算子的大小和步长对张量维度的影响

参考技术A 方便起见先只考虑长宽相等的二维张量(简称正方形),因此卷积核也是二维的,运算结果张量也会是正方形。

卷积另有一条限制,核数不得大于输入维度,否则无法运算。
另,步长倒是可以大于维度,但这时结果必然为一个标量,即结果维数为1.

如果输入张量长宽不等,长与宽可以按照上述方法分别计算。

图片一般是三维张量,除了长宽,第三维一般称为通道数。彩色图片为3,黑白图片为1.
相应的,卷积核的除了宽高外的第三个维度必须等于输入的通道数。在pytroch中,nn.Conv2d的第一个参数即为输入的通道数。这个维度是固定的,输入张量是多少就必须指定为多少,不像大小和步长可以自己指定,所以也无需研究。

下面每一行是一个卷积运算的例子,以第一行 [3, 3]^* 2->2: [1, 1] 为例,输入张量的维度是 [3, 3] , ^* 代表卷积运算, 2->2 代表卷积核数为2,步长为2, : [1, 1] 代表输出张量的维度。

以上是关于01 卷积运算张量维度问题的主要内容,如果未能解决你的问题,请参考以下文章

深度学习——1×1卷积核理解

PyTorch笔记 - Convolution卷积运算的原理

PyTorch笔记 - Convolution卷积运算的原理

PyTorch笔记 - Convolution卷积运算的原理

学习笔记TF013:卷积跨度边界填充卷积核

深度神经网络中的卷积