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

神经网络:池化层

  1. 神经网络 池化操作

    下采样:减少特征数量

    先看池化操作:

    其中ceil_mode设置成True和False池化区别:

    在这个例子当中:ceil_mode=True表示边缘不满3x3的部分也会被池化,False表示边缘不满3x3的部分不会采样

    code:

    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)
    #这里dtype为float是因为maxpool2d只能处理float类型的数据input = torch.reshape(input,(-1,1,5,5))
    print(input.shape)class Net(nn.Module):def __init__(self):super(Net,self).__init__()#ceil_mode=True表示边缘不满3x3的部分也会被池化#kernel_size=3 默认是卷积核的大小self.maxpool1 = MaxPool2d(kernel_size=3,ceil_mode=True)self.maxpool2 = MaxPool2d(kernel_size=3,ceil_mode=False)def forward(self,input):#output = self.maxpool1(input)output = self.maxpool2(input)return outputnet = Net()
    output = net(input)
    print(output)
    

    ceil_mode=True:

    在这里插入图片描述

    ceil_mode=False:

    在这里插入图片描述

  2. 神经网络 池化层
    这里需要先看这篇博客:

https://blog.csdn.net/whdehcy/article/details/149486555?fromshare=blogdetail&sharetype=blogdetail&sharerId=149486555&sharerefer=PC&sharesource=whdehcy&sharefrom=from_link

是讲卷积层的

现在将上一步的卷积得到的特征图作为池化的输入

    pool_output = poolnet(conv_output)writer.add_images('pool_output',pool_output,cnt)

只需要添加一下池化的操作

class poolNet(nn.Module):def __init__(self):super(poolNet,self).__init__()#ceil_mode=True表示边缘不满3x3的部分也会被池化#kernel_size=3 默认是卷积核的大小self.maxpool1 = MaxPool2d(kernel_size=3,ceil_mode=True)self.maxpool2 = MaxPool2d(kernel_size=3,ceil_mode=False)def forward(self,input):output = self.maxpool1(input)#output = self.maxpool2(input)return outputpoolnet = poolNet()

完整版代码:

import torch
import torchvision
from torch import nn
from torch.nn import Conv2d, MaxPool2d
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriter
from torchvision.datasets import ImageFolder
from torchvision import transforms#数据预处理
transform = transforms.Compose([transforms.Resize((224,224)),transforms.ToTensor(),transforms.Normalize(mean = [0.5,0.5,0.5],std = [0.5,0.5,0.5])
])#加载数据集
folder_path = '../images'
dataset = ImageFolder(folder_path,transform=transform)
dataloader = DataLoader(dataset,batch_size=1)#卷积
class convNet(nn.Module):def __init__(self):#调用父类nn.Module的构造函数super(convNet,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 xconvnet = convNet()#池化
class poolNet(nn.Module):def __init__(self):super(poolNet,self).__init__()#ceil_mode=True表示边缘不满3x3的部分也会被池化#kernel_size=3 默认是卷积核的大小self.maxpool1 = MaxPool2d(kernel_size=3,ceil_mode=True)self.maxpool2 = MaxPool2d(kernel_size=3,ceil_mode=False)def forward(self,input):output = self.maxpool1(input)#output = self.maxpool2(input)return outputpoolnet = poolNet()writer = SummaryWriter('../logs')cnt = 0
for data in dataloader:img,label = dataprint(img.shape)conv_output = convnet(img)print(conv_output.shape)writer.add_images('input',img,cnt)conv_output = torch.reshape(conv_output,(-1,3,222,222))writer.add_images('conv_output',conv_output,cnt)pool_output = poolnet(conv_output)writer.add_images('pool_output',pool_output,cnt)cnt = cnt + 1writer.close()

卷积:

在这里插入图片描述

池化:
在这里插入图片描述

http://www.dtcms.com/a/289052.html

相关文章:

  • 数字图像处理(四:图像如果当作矩阵,那加减乘除处理了矩阵,那图像咋变):从LED冬奥会、奥运会及春晚等等大屏,到手机小屏,快来挖一挖里面都有什么
  • 41.FeignClient整合Sentinel
  • 7-20 关于mysql
  • C#.NET EFCore.BulkExtensions 扩展详解
  • 【机器学习工具】Weights Biases
  • C++string类用法
  • gradle微服务依赖模版
  • OpenTelemetry学习笔记(九):Elastic 对 OTLP 的原生支持
  • 【成品设计】基于STM32的宠物检测系统
  • 状态管理与团队协作 - SRE 的核心关切
  • Flink2.0学习笔记:Table API SQL
  • Ubuntu 24.04 设置静态 IP 的方法
  • XILINX JESD204B/C IP的AXI配置
  • leetCode——1492. n的第k个因子
  • ps2025下载与安装教程(附安装包) 2025最新版photoshop安装教程
  • 进阶向:基于Python的局域网文件传输工具
  • 初识软件测试
  • Redis 详解:从入门到进阶
  • Hiredis 构建 Redis 命令实战指南
  • 基于pi/4-QPSK扩频解扩和gardner环定时同步的通信系统matlab性能仿真
  • 绝对定位 vs 浮动:CSS布局核心差异解析
  • Spring 源码阅读(二) 核心概念解析 ApplicationContext、类型转化
  • 企业安全防护:堡垒机技术解析
  • 数据结构与算法汇总
  • spring-cloud使用
  • 再谈文件-ext2文件系统
  • NISP-PTE基础实操——XSS
  • PPT科研画图插件
  • 力扣-55.跳跃游戏
  • 【C语言】内存函数介绍(上)