PyTorch学习—10.nn中网络层的具体使用
2021/7/17 23:11:39
本文主要是介绍PyTorch学习—10.nn中网络层的具体使用,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
文章目录
- 引言
- 一、卷积层
- 1. nn.Conv2d
- 2.nn.ConvTranspose2d
- 二、池化层
- 1. nn.MaxPool2d
- 2. nn.AvgPool2d
- 3. nn.MaxUnpool2d
- 三、线性层
- 1. nn.Linear
- 四、激活函数层
- 1. nn.Sigmoid
- 2. nn.tanh
- 3. nn.ReLU
理论知识插眼:深度学习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
4∗4,卷积核为
3
∗
3
3*3
3∗3,padding=0,stride=1
图像:
这篇关于PyTorch学习—10.nn中网络层的具体使用的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-20获取apk的md5值有哪些方法?-icode9专业技术文章分享
- 2024-11-20xml报文没有传 IdentCode ,为什么正常解析没报错呢?-icode9专业技术文章分享
- 2024-11-20如何知道代码有没有进行 Schema 验证?-icode9专业技术文章分享
- 2024-11-20Mycat教程:新手快速入门指南
- 2024-11-20WebSocket入门:轻松掌握WebSocket基础
- 2024-11-19WebSocket入门指南:轻松搭建实时通信应用
- 2024-11-19Nacos安装资料详解:新手入门教程
- 2024-11-19Nacos安装资料:新手入门教程
- 2024-11-19升级 Gerrit 时有哪些注意事项?-icode9专业技术文章分享
- 2024-11-19pnpm是什么?-icode9专业技术文章分享