当前位置: 首页 > news >正文

黑龙江期刊网站制作/百度推广引流

黑龙江期刊网站制作,百度推广引流,济南网站建设力推搜点网络ok,建设网站企业网上银行登录入口神经网路-卷积层&池化层 一级目录二级目录三级目录 1. 神经网路-卷积层2. 神经网路最大池化的应用 一级目录 二级目录 三级目录 1. 神经网路-卷积层 在PyTorch中,torch.nn.Conv2d函数定义了一个二维卷积层,其常用参数包括: in_channel…

神经网路-卷积层&池化层

  • 一级目录
    • 二级目录
      • 三级目录
  • 1. 神经网路-卷积层
  • 2. 神经网路最大池化的应用

一级目录

二级目录

三级目录

1. 神经网路-卷积层

在这里插入图片描述
在PyTorch中,torch.nn.Conv2d函数定义了一个二维卷积层,其常用参数包括:
in_channels:输入图像的通道数,例如RGB图像为3。
out_channels:经过卷积运算后,输出特征映射的数量,即卷积核的数量。
kernel_size:卷积核的大小,可以是一个整数或一个元组指定高度和宽度,例如3或(3, 3)。
stride:卷积核在输入特征图上滑动的步长,控制输出特征图的大小。
padding:在输入特征图的边缘添加的像素数,用于控制输出特征图的大小。
dilation:卷积核元素之间的间距,影响卷积核覆盖的区域大小,也称为空洞卷积。
groups:分组卷积中的组数,可以减少参数数量和计算量。
bias:布尔值,指定是否添加偏置项,默认为True。
padding_mode:指定填充类型,例如’zeros’、‘reflect’等,默认为’zeros’。
其中前五个参数比较常用,后四个一般使用默认值就可以了
这些在我上一个博客中也有所解释
在这里插入图片描述

import torch
import torchvision
from torch import nn
from torch.nn import Conv2d
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriter#准备测试集
dataset = torchvision.datasets.CIFAR10("./das", train=False, transform=torchvision.transforms.ToTensor(),download = True)dataloader = DataLoader(dataset, batch_size=64)class Test(nn.Module):def __init__(self):super(Test, self).__init__()self.conv1 = Conv2d(in_channels=3,out_channels=6,kernel_size=3,stride=1,padding=0)def forward(self, x):x = self.conv1(x)return xtest = Test()
print(test)
writer = SummaryWriter("logs")
step = 0
for data in dataloader:imgs, targets = dataoutput = test(imgs)# print(output.shape)writer.add_images("input",imgs, step)writer.add_images("output", output, step)step = step + 1

如果运行上述代码的话会发现这样的报错
在这里插入图片描述
就是通道数不符造成的,因此我们可以使用reshape操作

import torch
import torchvision
from torch import nn
from torch.nn import Conv2d
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriter#准备测试集
dataset = torchvision.datasets.CIFAR10("./das", train=False, transform=torchvision.transforms.ToTensor(),download = True)dataloader = DataLoader(dataset, batch_size=64)class Test(nn.Module):def __init__(self):super(Test, self).__init__()self.conv1 = Conv2d(in_channels=3,out_channels=6,kernel_size=3,stride=1,padding=0)def forward(self, x):x = self.conv1(x)return xtest = Test()
print(test)
writer = SummaryWriter("logs")
step = 0
for data in dataloader:imgs, targets = dataoutput = test(imgs)# print(output.shape)writer.add_images("input",imgs, step)output = torch.reshape(output, (-1,3,30,30)) # 根据错误提示进行修改writer.add_images("output", output, step)step = step + 1

请添加图片描述
我们来看一下size的变化
input[64,3,32,32]
output[64,6,30,30]–(经过reshape)–>[xxx, 3, 30,30]

我们在pytorch官网上面可以找到input/output的形状的计算方法
在这里插入图片描述
input[64,3,32,32]
output[64,6,30,30]
在这里插入图片描述
利用上述公式确实得到了output的Hout,Wout为30

2. 神经网路最大池化的应用

在这里插入图片描述

在PyTorch中,torch.nn.MaxPool2d是一个二维最大池化层,用于对输入信号进行下采样。以下是该操作的主要参数及其作用:

  1. kernel_size:池化窗口的大小,可以是单个整数或两个整数的元组,分别指定高度和宽度。

  2. stride:池化窗口滑动的步长,控制输出特征图的大小。可以是单个整数或两个整数的元组,分别对应高度和宽度。默认值为kernel_size

  3. padding:在输入特征图的边缘添加的零填充的数量,用于控制输出特征图的大小。可以是单个整数或两个整数的元组,分别对应高度和宽度。默认值为0。

  4. dilation:控制池化窗口中元素之间的间距,影响池化窗口覆盖的区域大小。可以是单个整数或两个整数的元组,分别对应高度和宽度。默认值为1。

  5. return_indices:如果设置为True,则会返回每个最大值的索引,这在后续使用torch.nn.MaxUnpool2d时非常有用。默认值为False。

  6. ceil_mode:当设置为True时,输出形状的计算会使用向上取整而不是向下取整。默认值为False。

这些参数共同决定了池化操作的行为和输出特征图的大小。例如,kernel_sizestride决定了池化窗口的大小和移动步长,而paddingdilation则影响输出特征图的大小和池化窗口的覆盖范围。通过合理设置这些参数,可以在保持重要特征的同时减小数据的空间维度,从而降低计算复杂度。

在这里插入图片描述
图片展示了一个5x5的输入图像经过最大池化操作后的结果。使用的池化核大小为3x3,并且kernel_size参数被设置为3。最大池化操作在图像处理中用于降低特征的空间维度,同时保留最重要的特征信息。

图片中还展示了两种不同情况下池化操作的结果,分别是ceil_mode=Trueceil_mode=False(默认值)。当ceil_mode=True时,池化窗口被允许越界,即如果窗口起始于左侧填充或输入区域,则窗口可以超出边界,而起始于右侧填充区域的窗口将被忽略。这会导致输出特征图的尺寸可能与默认情况下不同。

ceil_mode=False时,输出特征图的大小是向下取整计算得到的。而当ceil_mode=True时,输出特征图的大小是向上取整计算得到的。这种设置对于输出特征图的尺寸有影响,尤其是在输入特征图的尺寸不能被池化窗口整除的情况下。

然后我们可以编写代码验证一下

import torch
from torch import nn
from torch.nn import MaxPool2dinput = torch.tensor([[1,2,0,3,1],[0,1,2,3,1],[1,2,1,0,0],[5,2,3,1,1],[2,1,0,1,1]], dtype = torch.float32)
input = torch.reshape(input, (-1,1,5,5))
print(input.shape)class Test(nn.Module):def __init__(self):super(Test, self).__init__()self.maxpool1 = MaxPool2d(3, ceil_mode=True)def forward(self, input):output = self.maxpool1(input)return outputtest = Test()
output = test(input)
print(output)

运行结果是:
在这里插入图片描述

然后我们可以更改ceil_mode

class Test(nn.Module):def __init__(self):super(Test, self).__init__()self.maxpool1 = MaxPool2d(3, ceil_mode=False) # 更改ceil_modedef forward(self, input):output = self.maxpool1(input)return output

运行结果是:
在这里插入图片描述
在tensorboard中打开
请添加图片描述
在这里插入图片描述
池化操作不会减少图片数量,但会通过下采样减小图片尺寸,从而降低后续层的计算量和参数数量。

http://www.whsansanxincailiao.cn/news/31994436.html

相关文章:

  • 怎样进行网站建设/优化的近义词
  • 网站怎么做内链接地址/怎么在广告联盟接广告
  • 企业网站建设的报价/全网营销渠道
  • 哪里能给人做网站/seo技术培训教程
  • 网站banner图自适应/lol关键词查询
  • 宁波网站建设哪家快/360线上推广
  • 种子网站模板/汕头网站建设技术外包
  • 彩票网站的代理怎么做/seo搜索引擎优化推广专员
  • 衡水seo网站建设优化排名/营销软文范例
  • 门户网站建设案例/营销课程培训都有哪些
  • 政府网站建设及建议/外贸推广渠道有哪些
  • 可以免费做简历的网站/提高seo关键词排名
  • 抓取资源的网站怎么做/win10最强性能优化设置
  • 软件系统开发大概多少钱/淄博seo网站推广
  • 花钱让别人做的网站版权是谁的/网络推广平台软件
  • vs2012怎么做网站/网站优化策略
  • 广告策划书不包括什么内容/seo顾问张智伟
  • 媒体网站怎么申请/宁波seo推广优化哪家强
  • 佛山优化网站公司/谷歌 chrome 浏览器
  • 如何制作推广网站/内蒙古seo优化
  • 湖南网站seo/楚雄今日头条新闻
  • 政府网站建设年终总结/seo行业
  • 单页设计网站/微信seo是什么意思
  • 莱西网站建设/福州seo代理商
  • 网站上的定位功能如何实现的/顺德搜索seo网络推广
  • 微信网站制作软件/十大永久免费的软件下载
  • 晏阳初乡村建设网站/一站式网络营销
  • 网站的关键词搜索怎么做/现在网络推广哪家好
  • wrix 网站开发/高端网站建设
  • 网站建设刂搜金手指下拉二五/关键词首页排名优化