当前位置:网站首页>MaxPool2d详解--在数组和图像中的应用
MaxPool2d详解--在数组和图像中的应用
2022-06-30 23:05:00 【Philo`】
1、环境要求
1、需要安装Pytorch依赖
2、官方文档conv2d
3、图片需要CIFAR10数据集
2、原理讲解
用卷积核覆盖在原始数据上,选择原始数据中被卷积核覆盖的最大值

选择卷积核覆盖时的最大值,ceil_mode控制卷积核超出原始数据后是否进行保留
3、函数要求
函数:
参数要求
kernel_size设置卷积核大小的属性stride和conv2d中的stride一样,是控制移动步幅的属性,这里注意,conv2d默认值是1,但是MaxPool2d默认值是卷积核大小padding设置原始数据周围填充的属性dilation:表明给原始数据之间添加0的属性ceil_mode控制当卷积核超过原始图像时,是否对max进行保留
4、例子
4.1、数组
代码:
import torch
import torchvision
from torch.nn import Module,MaxPool2d
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriter
input = 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)
print("前",input.shape) # torch.Size([5, 5]),不满足输入的条件,需要进行格式转换
input = torch.reshape(input,(-1,1,5,5))
print("后",input.shape) # 后 torch.Size([1, 1, 5, 5]) 一个bach_size,
class ConNet(Module):
def __init__(self):
super(ConNet, self).__init__()
# 池化层使用,设置卷积核为3*3,超出的部分保留数据
self.maxpool = MaxPool2d(kernel_size=3,ceil_mode=True)
def forward(self,input):
output = self.maxpool(input)
return output
# 实例化对象
Work = ConNet()
# 神经网络调用
output = Work(input)
print(output)
结果:
4.2、图像
代码:
import torch
import torchvision
from torch.nn import Module,MaxPool2d
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriter
class ConNet(Module):
def __init__(self):
super(ConNet, self).__init__()
# 池化层使用,设置卷积核为3*3,超出的部分保留数据
self.maxpool = MaxPool2d(kernel_size=3,ceil_mode=True)
def forward(self,input):
output = self.maxpool(input)
return output
# 实例化对象
Work = ConNet()
# CIFAR10数据使用
dataset = torchvision.datasets.CIFAR10("./datasetvision",train=False,download=False,transform=torchvision.transforms.ToTensor())
# 数据加载
dataloader = DataLoader(dataset,batch_size=64)
writer = SummaryWriter("logs_MaxPool")
step = 0
for data in dataloader:
imgs,target = data
writer.add_images("input",imgs,step)
output = Work(imgs)
writer.add_images("output",output,step)
step = step + 1
writer.close()
结果:

4.3、Conv2d+MaxPool2d图像
代码:
import torch
import torchvision
from torch.nn import Module,MaxPool2d,Conv2d
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriter
class ConNet(Module):
def __init__(self):
super(ConNet, self).__init__()
# 池化层使用,设置卷积核为3*3,超出的部分保留数据
self.maxpool = MaxPool2d(kernel_size=3,ceil_mode=True)
self.conv2d = Conv2d(in_channels=3,out_channels=3,kernel_size=3,stride=1,padding=0)
def forward(self,input):
output = self.conv2d(input)
output = self.maxpool(output)
return output
# 实例化对象
Work = ConNet()
# CIFAR10数据使用
dataset = torchvision.datasets.CIFAR10("./datasetvision",train=False,download=False,transform=torchvision.transforms.ToTensor())
# 数据加载
dataloader = DataLoader(dataset,batch_size=64)
writer = SummaryWriter("logs_MaxPoolAndConv2d")
step = 0
for data in dataloader:
imgs,target = data
writer.add_images("input",imgs,step)
output = Work(imgs)
writer.add_images("output",output,step)
step = step + 1
writer.close()
结果:

边栏推荐
- 微信小程序通过点击事件传参(data-)
- RIDE:获取图片base64
- Introduction to machine learning compilation course learning notes lesson 2 tensor program abstraction
- 基金客户服务
- Prospects of world digitalization and machine intelligence in the next decade
- 35 giant technology companies jointly form the meta universe standard Forum Organization
- 请指教同花顺软件究竟是什么?另外想问,现在在线开户安全么?
- Flitter - sort list sort
- When unittest automatically tests multiple use cases, the logging module prints repeatedly to solve the problem
- 后疫情时代,云计算如何为在线教育保驾护航
猜你喜欢

Fastjson V2 simple user manual

在线客服聊天系统源码_美观强大golang内核开发_二进制运行傻瓜式安装_附搭建教程...

Two dots on the top of the latex letter

MIT博士论文 | 优化理论与机器学习实践

dba

latex字母头顶两个点

Esp8266 becomes client and server

The sandbox is being deployed on the polygon network

Prospects of world digitalization and machine intelligence in the next decade

Online customer service chat system source code_ Beautiful and powerful golang kernel development_ Binary operation fool installation_ Attached construction tutorial
随机推荐
Fund managers' corporate governance and risk management
Qt笔记(七十四)之QLineEdit指定输入类型
多线程经典案例
机器学习编译入门课程学习笔记第二讲 张量程序抽象
Fastjson V2 简单使用手册
【Android,Kotlin,TFLite】移动设备集成深度学习轻模型TFlite(图像分类篇)
软件确认测试的内容和流程有哪些?确认测试报告需要多少钱?
Deployment of microservices based on kubernetes platform
Achieve secure data sharing among multiple parties and solve the problem of asymmetric information in Inclusive Finance
The sandbox is being deployed on the polygon network
Some memory problems summarized
E-commerce seckill system
When unittest automatically tests multiple use cases, the logging module prints repeatedly to solve the problem
RIDE:获取图片base64
在线客服聊天系统源码_美观强大golang内核开发_二进制运行傻瓜式安装_附搭建教程...
微信支付WxPayPubHelper v3版 回调xml为空的原因
远程办公期间,项目小组微信群打卡 | 社区征文
“飞桨+辨影相机”成为AI界的“预制菜”,工业AI质检落地更简单
异步过渡方案—Generator
CesiumJS 2022^ 源码解读[6] - 三维模型(ModelExperimental)新架构