卷积 – 2. 标准2D卷积 详解

导读:本篇文章讲解 卷积 – 2. 标准2D卷积 详解,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

1.  Pytorch代码

对于卷积里,pytorch代码非常简单,看 Conv2d PyTorch 1.10.0 非常足够!但我也想对其中的部分进行更多一点的解释

卷积 - 2. 标准2D卷积 详解

  • in_channels (int) – 输入图片 / 特征的通道数 

  • out_channels (int) – 输出特征的通道数

  • kernel_size (int or tuple) – 卷积核的大小 (比如 int:3,代表 size 3 × 3)

  • stride (int or tupleoptional) – 上一篇文章中,卷积核的每一步的移动步长 (默认是1)

  • bias (booloptional) – 可学习偏执,如果是Ture,则在最后的输出特征每个通道的每个元素加上这个偏执项。( 默认:True)

  • dilation (int or tupleoptional) – 卷积核内部像素之间的距离. (默认: 1)

  • groups (intoptional) – 分组,(默认: 1) 详解请看 卷积 – 3. 分组卷积 详解


上述的参数都是易懂的,且很好理解的,我重点介绍和解释下面的几个参数: 

– padding  (inttuple or stroptional) : 在讲这个参数之前,首先要明确和解决的几个问题是

1. 为什么会存在padding?答:如下图当stride是2的时候,此时卷积核对应的像素值已经为null了,所以要在null处补值。

卷积 - 2. 标准2D卷积 详解

2. padding是在卷积前补还是之后补?补充的值是什么?

padding是在卷积前面补充,默认是0。例如:当padding = 1, 则在卷积前的特征上下左右均补1行0,当padding = (1, 2) 则在上下补1行0,左右补2行0。可以通过torch.nn.Functional.pad来补非0的值。

2. 输出特征计算

输出的特征计算,是通过上面的几个参数得到的,具体的计算公式可以看官网,下面贴出来:

卷积 - 2. 标准2D卷积 详解

 我们通过代码来展示一下:假设我们input 为(6, 3, 100, 200) , in_channel = 3, out_channels = 16, kernel_size = 3, padding = 1, stride = (2, 1) 那我们最后通过程序得到的输出:

卷积 - 2. 标准2D卷积 详解 卷积 - 2. 标准2D卷积 详解

 经验算,是符合上面公式的!好的,今天讲解就到这里,有问题就留言!下课!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/87470.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!