PyTorch学习—10.nn中网络层的具体使用


理论知识插眼:深度学习TF—7.卷积神经网络CNN


引言

  前面,我们学习了如何搭建模型,以及在模型搭建过程中用到的容器。这一节,我们介绍网络层的具体使用。

一、卷积层

  下面介绍几个概念:

  • 卷积运算:卷积核在输入信号(图像)上滑动,相应位置上进行乘加。
  • 卷积核:又称为滤波器,过滤器,可认为是某种模式,某种特征。
    在这里插入图片描述
  • 卷积维度:一般情况下,卷积核在几个维度上滑动,就是几维卷积。
    PyTorch中提供了1d、2d、3d的卷积。

1d conv:
在这里插入图片描述
2d conv:
在这里插入图片描述
3d conv:
在这里插入图片描述

上述都是一个卷积核在一个信号上的卷积。如果涉及多个卷积核多个信号的操作,那么应该怎么判断卷积的维度?下面我们以一个三维卷积核实现二维卷积为例
在这里插入图片描述
每个卷积核分别在各自的通道进行卷积操作得到输出值,然后相加再加上偏置才会得到特征图的一个像素值。一个卷积核只在一个二维图像上进行滑动,所以这是二维卷积。为什么它是三维卷积核?正是因为它有多个通道,在多个通道上分别进行卷积。

1. nn.Conv2d
nn.Conv2d(in_channels,
	out_channels,
	kernel_size,
	stride=1,
	padding=0,
	dilation=1,
	groups=1,
	bias=True,
	padding_mode= ' zeros ' )

功能:对多个二维信号进行二维卷积
主要参数:

  • in_channels:输入通道数
  • out_channels:输出通道数,等价于卷积核个数
  • kernel_size:卷积核尺寸
  • stride:步长
  • padding :填充个数,用于保持输入与输出图像的尺寸是匹配的
  • dilation:空洞卷积大小
  • groups:分组卷积设置
  • bias:偏置

尺寸计算公式为:
在这里插入图片描述

2.nn.ConvTranspose2d

  nn.ConvTranspose2d是转置卷积。转置卷积用于对图像进行上采样(UpSample),经常用于图像分割任务。那么,什么是转置卷积?它与正常卷积有什么区别?
如图是正常2d卷积
在这里插入图片描述
假设图像尺寸为 4 ∗ 4 4*4 44,卷积核为 3 ∗ 3 3*3 33,padding=0,stride=1
图像: 𝟏 𝟔 ∗ 𝟏 𝟏𝟔∗𝟏 161 卷积核: 𝟒 ∗ 𝟏 𝟔 𝟒∗𝟏𝟔 416 输出: 𝟒 ∗ 𝟏 𝟒∗𝟏 41 = ( 𝟒 ∗ 𝟏 𝟔 ) ∗ ( 𝟏 𝟔 ∗ 𝟏 ) (𝟒∗𝟏𝟔) ∗ (𝟏𝟔∗𝟏) (416)(161)
如图是转置卷积:
在这里插入图片描述
假设图像尺寸为 2 ∗ 2 , 卷 积 核 为 3 ∗ 3 2*2,卷积核为3*3 2233,padding=0,stride=1
$图像:𝟒∗𝟏 卷积核: 𝟏 𝟔 ∗ 𝟒 𝟏𝟔∗𝟒 164 输出: 𝟏 𝟔 ∗ 𝟏 = ( 𝟏 𝟔 ∗ 𝟒 ) ∗ ( 𝟒 ∗ 1 ) 𝟏𝟔∗𝟏 = (𝟏𝟔∗𝟒) ∗ (𝟒∗1) 161=(164)</

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值