首页 > 其他分享 >池化层——pytorch版

池化层——pytorch版

时间:2023-08-06 14:45:09浏览次数:37  
标签:池化层 nn torch shape MaxPool2d pytorch 池化 pool2d

import torch
from torch import nn
from d2l import torch as d2l

# 实现池化层的正向传播
def pool2d(x,pool_size,mode='max'):
    # 获取窗口大小
    p_h,p_w=pool_size
    # 获取偏移量
    y=torch.zeros((x.shape[0]-p_h+1,x.shape[1]-p_w+1))
    for i in range(y.shape[0]):
        for j in range(y.shape[1]):
            if mode=='max':
                y[i,j]=x[i:i+p_h,j:j+p_w].max()
            elif mode=='avg':
                y[i,j]=x[i:i+p_h,j:j+p_w].mean()
    return y


X = torch.tensor([[0.0, 1.0, 2.0], [3.0, 4.0, 5.0], [6.0, 7.0, 8.0]])
pool2d(X, (2, 2))
pool2d(X,(2,2),'avg')

# 通道是1批量大小是1,4x4矩阵
x=torch.arange(16,dtype=torch.float32).reshape((1,1,4,4))
print(x)

# 深度学习框架中的步幅与池化窗口的大小相同,每次池化没有相同的部分
# 3x3的窗口
pool2d = nn.MaxPool2d(3)
pool2d(x)

# 填充步幅可以手动设定
pool2d = nn.MaxPool2d(3,padding=1,stride=2)
pool2d(x)

# 设定一个任意大小的矩形池化窗口,并分别设定填充和步幅的高度和宽度
pool2d = nn.MaxPool2d((2,3),padding=(1,1),stride=(2,3))
pool2d(x)

# 池化在每个输入通道上单独运算
x=torch.cat((x,x+1),1)
print(x)
pool2d = nn.MaxPool2d(3,padding=1,stride=2)
pool2d(x)

 

标签:池化层,nn,torch,shape,MaxPool2d,pytorch,池化,pool2d
From: https://www.cnblogs.com/jinbb/p/17609397.html

相关文章

  • LeNet卷积神经网络——pytorch版
    importtorchfromtorchimportnnfromd2limporttorchasd2lclassReshape(torch.nn.Module):defforward(self,x):#批量大小默认,输出通道为1returnx.view(-1,1,28,28)net=torch.nn.Sequential(#28+4-5+1=28输出通道为6Reshape()......
  • 配置pytorch环境时出现的问题 Failed to load image Python extension
    安装了torch1.12.0+torchvision0.13.0+torchaudio0.12.0版本后,condainstallpytorch==1.12.0torchvision==0.13.0torchaudio==0.12.0cudatoolkit=11.3-cpytorch按照《动手学深度学习》输入 fromd2limporttorchasd2l命令,跳出警告UserWarning:Failed......
  • 动手深度学习pytorch 8-章
    1. 序列模型a)自回归模型对见过的数据建模b)马尔可夫模型c)因果关系2.单机多卡并行数据并行和模型并行:数据并行,将小批量分成n块,每个GPU拿到完整参数计算,性能更好。模型并行,将模型分成n块,每个GPU拿到一块模型计算前向和方向结果,用于单GPU放不下小批......
  • pytorch实现cnn&图像分类器
    1pytorch实现神经网络1.1定义网络从基类nn.Module继承过来,必须重载def__init__()和defforward()classNet(nn.Module):def__init__(self):#网络结构super(Net,self).__init__()#1inputimagechannel,6outputchannels,5x5squareco......
  • ubuntu系统conda下运行pytorch报错:ImportError: libopenblas.so.0: cannot open share
    如题:ubuntu系统conda下运行pytorch报错:ImportError:libopenblas.so.0:cannotopensharedobjectfile   网上找了一些资料,基本都是自己下载openblas源码进行编译,不过突然之间相当conda环境提供一定的编译好的lib环境,使用conda命令既可安装,于是按照这个思路再进行搜索......
  • pytorch 入门
    1、打开编译器 2、创建工程 3、选择python3.8,和conda模式 ......
  • 2. 基于CPU安装Pytorch
    1、确保你已经安装过Anaconda2、在开始菜单→打开Anaconda Prompt环境 3、创建pytorch环境→输入condacreate-npytorchpython=3.8  4、查看已经安装好的库piplist 很遗憾,里面有pytorch,所以我们得安装了 5、进入pytroch官网:PyTorch 上面的代码......
  • PyTorch基础知识-新手笔记
    逐元素操作Tensor中也有逐元素操作,大部分的数学运算都属于逐元素操作,逐元素操作的输入与输出的形状相同。常见的逐元素操作可参考下表:abs/add:绝对值/加法addcdiv(t,t1,t2,value=1):t1与t2按元素除后,乘以value加t,即t+(t1/t2)*valueaddcmul(t,t1,t2,value=1):t1与t2按元素乘后,乘......
  • 大连人工智能计算平台——华为昇腾AI平台——高性能计算HPC的pytorch环境的软件升级—
       aarch64架构CPU下Ubuntu系统环境源码编译pytorch-gpu-2.0.1版本X86架构CPU下Ubuntu系统环境源码编译pytorch-gpu-2.0.1版本如何拉取指定CPU架构并且指定ubuntu版本并且指定cuda和cudnn版本的docker镜像如何拉取指定CPU架构并且指定ubuntu版本并且指定cuda和cudnn版本......
  • 深度学习TensorFlow和CUDA、cudnn、Pytorch以及英伟达显卡对应版本对照表
    一、TensorFlow对应版本对照表版本Python版本编译器cuDNNCUDAtensorflow-2.9.03.7-3.10 8.111.2tensorflow-2.8.03.7-3.10 8.111.2tensorflow-2.7.03.7-3.9 8.111.2tensorflow-2.6.03.6-3.9GCC7.3.18.111.2tensorflow-2.5.03.6-3.9GCC......