深入理解卷积函数torch.nn.Conv2d的各个参数以及计算公式(看完写模型就很简单了)

代码解释帮助理解:

torch.randn(10, 3, 32, 32),初始数据:(10, 3, 32, 32)代表有10张图片,每张图片的像素点用三个数表示,每张图片大小为32x32。(重点理解这个下面就好理解了)
nn.Conv2d(3, 64, kernel_size=3, padding=1)理解Conv2d参数。表示图片输入的通道是3,输出为64通道(因为用的是64个卷积核(滤波器)。这样就理解卷积的含义了。

而conv3x3_1 = nn.Conv2d(64, 164,)#表明输入通道是64,输出通道是164.这里的输入要等于上一层的输出通道64,相当于有64个矩阵。输出通道数目可以自定义指定。


得出结论(重点):

nn.Conv2d(3, 64,)的前两个参数输入通道数和输出通道数其实在修改的是图片的单个像素用多少个数字表示,如RGB是用三种颜色(用三个数字表示一个像素)。也就是修改的是torch.randn(10, 3, 32, 32)里面的3。

后三个参数卷积核大小(kernel_size)和步长(stride)以及填充(padding)是改变图片的尺寸。也就是修改的是torch.randn(10, 3, 32, 32)里面的32x32。

 

import torch
import torch.nn as nn# 创建输入张量
input_tensor = torch.randn(10, 3, 32, 32)  # 输入通道数为3,输入特征图尺寸为32x32,相当于有3个32x32的矩阵,也就是一张图片# 创建3x3卷积层
conv3x3 = nn.Conv2d(3, 64, kernel_size=3, padding=1)#表明输入通道是3,输出通道是64# 进行3x3卷积操作
output = conv3x3(input_tensor)# 打印输出特征图的尺寸
print(output.size())
torch.Size([10, 64, 32, 32])

第一种代码:

conv3x3_1 = nn.Conv2d(64, 164, kernel_size=3, padding=1)#表明输入通道是64,输出通道是164.这里的输入要等于上一层的输出通道64,相当于有64个二矩阵# 进行3x3卷积操作
output1 = conv3x3_1(output)
print(output1.size())

输出结果:torch.Size([10, 164, 32, 32])

上面修改第二层Conv2d()的输出通道数参数,改为164,发现最后输出结果output1也只是输出通道数目(也就是一个像素点用多少数字表示)变化,其他三个参数都没变,分别代表10张图片,图片尺寸为32x32。

**************************************************************************************

那么如何让图片大小32x32变化呢?答案就是改变卷积核大小(kernel_size)和步长(stride)以及填充(padding)。

将第一种代码改为下面代码:

conv3x3_1 = nn.Conv2d(64, 164, kernel_size=5, padding=4,stride=2)#表明输入通道是64,输出通道是164.这里的输入要等于上一层的输出通道64,相当于有64个二矩阵# 进行3x3卷积操作
output1 = conv3x3_1(output)
print(output1.size())
输出结果:torch.Size([10, 164, 18, 18])

发现图片大小变成18x18了,

计算公式为

Hout公式代入:18 = [32+2x4-1x(5-1)-1]/2+1结果再向下取整 (也就是35/2+1向下取整 = 18)

同理Wout公式带入也是18(明显也能看出参数矩阵都是矩阵,长宽的值一样)

tips1:nn.Conv2d中dilation这个参数 控制卷积核点的间距 不常用,代入上式默认值为1

dilation(int or tuple, optional)Spacing between kernel elements. Default: 1扩张操作:控制kernel点(卷积核点)的间距,默认值:1

tips2:有时候改完这三个参数或者其中的一两个,也可能会不同的参数经过同一个公式,导致图片尺寸不变。

最重要的是要理解nn.Conv2d参数的意思(下面是常用的五个参数):

参数参数类型
in_channelsintNumber of channels in the input image输入图像通道数
out_channelsintNumber of channels produced by the convolution卷积产生的通道数
kernel_size(int or tuple)Size of the convolving kernel卷积核尺寸,可以设为1个int型数或者一个(int, int)型的元组。例如(2,3)是高2宽3卷积核
stride(int or tuple, optional)Stride of the convolution. Default: 1卷积步长,默认为1。可以设为1个int型数或者一个(int, int)型的元组。
padding(int or tuple, optional)Zero-padding added to both sides of the input. Default: 0填充操作,控制padding_mode的数目。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/688391.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

独家丨美团直播积极寻求MCN公司合作,却意外成商家刷单圣地?

图片|《扫黑决战》截图 ©自象限原创 作者丨薛黎 编辑丨程心 2023年4月18日,美团直播在“神券节”中正式上线。整整一年之后,美团直播又在持续加码。 据「自象限」独家获悉,在去年12月美团上线达人直播后,近期…

Verilog_学习路线(小白)

#前言: 自从专心学习专业课后,发现知识点得用,越用越熟练,工具也一样,高级工具的学习可帮助我们在工作中极大地提高效率,但这里要记住一点,任何工具都是为解决实际问题出现的,即落脚…

Spring Cloud Gateway 全局过滤器

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 全局过滤器作用于所…

可以直接用的搭建训练一个气象深度学习模型全流程代码--part1 以预报预测为例

本期内容分享一套全流程搭建训练气象深度学习模型的代码,并考虑在基础的预报预测领域的应用。 本期内容的目标是:尽量让看过本文的读者,可以直接在本地一键跑通如SmaAtUNet、UNet等卷积网络,ConvLSTM、TrajGRU、PhyDNet、STPhy等…

Android Studio 读不到Android设备

Android Studio 读不到Android设备 在进行Android应用开发时,我们经常会遇到一种情况,就是Android Studio无法读取到连接在电脑上的Android设备。这个问题可能出现在不同的场景中,比如在运行应用程序时,设备列表中找不到连接的设…

CSS-背景属性

目录 背景属性 background-color (背景颜色 ) background-image (背景图片 ) background-repeat (背景图平铺方式 ) no-repeat 不平铺 repeat-x 水平方向平铺 repeat-y 垂直方向平铺 repeat 平铺 background-position (背景图位置) background-size (背景缩…

通过单总线实现单片机之间的数据传输

单总线、没有时钟线的通信时,不能使用简单的高低电平来通信,因为接收方不知道此时发送的数据是第几位数据,容易造成错乱。 因此在使用一根线对外传输数据时,需要自定义一个通信协议,它至少要包含格式头数据&#xff0c…

使用 AI Assistant for Observability 和组织的运行手册增强 SRE 故障排除

作者:Almudena Sanz Oliv, Katrin Freihofner, Tom Grabowski 通过本指南,你的 SRE 团队可以实现增强的警报修复和事件管理。 可观测性 AI 助手可帮助用户使用自然语言界面探索和分析可观测性数据,利用自动函数调用来请求、分析和可视化数据…

随身wifi网速测评!讯唐随身wifi和格行随身wifi哪个网速快?随身wifi哪个品牌最好用?

最近收到很多网友私信,希望推荐一款好用性价比高的随身wifi。通过各平台排行榜选出了公认口碑最好的格行随身wifi;又挑选了网友们经常问的的讯唐随身wifi;两个一起来实测一下,哪款更好用! 【品牌评测】 格行随身wifi&…

副产物四氯化硅综合利用满足可持续发展需求 行业发展意义重大

副产物四氯化硅综合利用满足可持续发展需求 行业发展意义重大 副产物四氯化硅综合利用,是以工业(主要是多晶硅行业)副产物四氯化硅为原料,制备高价值化学品的过程,可保护环境不受污染,同时实现废物资源化再…

租用便宜的香港云服务器?可以关注这几点

租用便宜的香港云服务器,要关注服务商、配置以及提供的服务水平协议(SLA)。一般来说,基础型的香港云服务器月付价格可以从几十到几百元不等。但请注意,非常低廉的价格可能会牺牲服务器的性能、可靠性以及技术支持。 对…

STM32入门_江协科技_5~6_OB记录的自学笔记_GPIO输出_LED流水灯_蜂鸣器

5. GPIO 输出 5.1. GPIO简介 GPIO(General Purpose Input Output)通用输入输出口可配置为8种输入输出模式引脚电平:0V~3.3V,部分引脚可容忍5V(端口输入5V的电压,之前引脚定义表格中带FT标识的&#xff09…