pytorch: MaxUnpool2d 与 Upsampling

Unpooling上池化/上采样(nn.MaxUnpool2d) (Nearest Neighbor Unpooling & Bed of Nails Unpooling)(upsampling) Unpooling作为一种上采样的方法,与pooling看起来像是相反的操作,我们有三种方法,第一种是Nearest Neighbor,就是把相同的数据复制4个达到扩大四倍的效果,第二种是”Bed of Nails”,把数据防止在对应位置的左上角,然后其余的地方补0,如下图所示。 第三种方法是Max Unpooling,对于一部分网络模型来讲,上采样和下采样的结构往往是对称的,我们可以在下采样做Max Pooling的时候记录下来最大值所在的位置,当做上采样的时候把最大值还原到其对应的位置,然后... 阅读详情

Upsampling:上采样,被nn.functional.interpolate代替

        nn.Upsampling is deprecated. Use nn.functional.interpolate instead.

 

#-*-coding:utf-8-*-
import torch
import torch.nn as nn
import numpy as np

# pool of non-square window
##  In the simplest case, the output value of the layer
# with input size (N,C,H,W)(N, C, H, W)(N,C,H,W),
# output (N,C,Hout,Wout)(N, C, H_{out}, W_{out})(N,C,Hout​,Wout​) and kernel_size (kH,kW)(kH, kW)(kH,kW) can be precisely described as:

data = np.arange(64).reshape((8,8))


A = torch.Tensor(data.reshape(1,1,8,8))
print('A=',A)
## MAX POOL
maxpool = nn.MaxPool2d((2, 2), stride=(2, 2),return_indices=True)
B,indices = maxpool(A)
print('B=',B)

## Upsample
Upsample = nn.Upsample(scale_factor=2, mode='bilinear')
C = Upsample(B)
print('C=',C)
D = nn.functional.interpolate(B,scale_factor=2, mode='bilinear')
print('D=',D)

### max unpool
maxunpool = nn.MaxUnpool2d(kernel_size=(2,2),stride=(2,2))
E = maxunpool(B,indices)
print('E=',E)

 

Torch 池化操作大全 MaxPool2d MaxUnpool2d AvgPool2d FractionalMaxPool2d LPPool2d AdaptivePool2d dilation详解 从torch官网看,针对图片,有这7中池化操作,大概分为最大池化类,平均池化类,杂类最大池化实现有四种方式,MaxPool2d,可以设置k,s,p,但是不能设置输出大小,输出大小是计算好的;FractionalMaxPool2d,可以设置k,和输出大小,单数s和p不能设置;AdaptiveMaxPool2d,只能设置输出大小,其余的都设置不了;LPPool2d,这个纯属特列才可以使用,并且特例中的功能还是MaxPool2d的阉割版;除了LPPool2d,其余逐步自由化,增加了网络设置的随机性; 阅读详情

相关推荐

pytorch学习笔记七:nn网络层——池化层、线性层

一、池化层 池化运算:对信号进行“收集” 并“总结”,类似于水池收集水资源,因而得名池化层。 收集:由多变少,图像的尺寸由大变小 总结:最大值/平均值 下面是最大值池化和平均值池化的示意图: 最大值池化就是将滑动窗口中的最大值作为最终的结果;平均值池化是将滑动窗口的平均值作为最终结果。下面看一下pytorch中提供最大值和平均值池化的函数 1、nn.Maxpool2d nn.MaxPool2d(kernel_size, stride=None, padding=0, dilation=1, retur

Dear_learner的博客 5100

AdaptiveAvgPool2D 不支持 onnx 导出,自定义一个类代替 AdaptiveAvgPool2D

AdaptiveAvgPool2D 不支持 onnx 导出,导出过程会告诉你,onnx不支持那个动态操作巴拉巴拉我用的是 pp_liteseg 导出为 onnx 模型,都一样,paddle和Torch的 Adaptive Pool2D 都是动态的,onnx暂时都不支持,我根据下述公式,将 AdaptiveAvgPool2D 改了,可以用onnx导出了,但是需要指定一下原图的大小,和输出图的大小hstart=floor(i∗Hin/Hout)hend=ceil((i+1)∗Hin/Hout)wstart=f

先说一下,就简单地写点儿氵文,不是博客,只是我的笔记本/工具书 4946

PyTorch模型转换为ONNX格式实现过程浅谈

本文主要为大家介绍了PyTorch模型转换为ONNX格式实现过程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助!

hdxx2022的博客 635

enet的pth转onnx遇见的坑

1.RuntimeError: Exporting the operator max_unpool2d to ONNX opset version 9 is not supported. 参考:https://www.wangt.cc/2020/10/runtimeerror-exporting-the-operator-max_unpool2d-to-onnx/ import argparse import logging import os import numpy as np impor..

爱CV 2012

pytorch MaxUnpool2d

这个函数onnx不支持 Upsampling:上采样,被nn.functional.interpolate代替 nn.Upsampling is deprecated. Use nn.functional.interpolate instead. pytorch: MaxUnpool2d 与 Upsampling #-*-coding:utf-8-*- import torch import torch.nn as nn import numpy as np ...

jacke121的专栏 3584

SegNet图像分割PyTorch实现:从原理到实战的完整指南

图像分割是计算机视觉中的核心任务,旨在将图像划分为多个有意义的区域,为每个像素分配类别标签。其基本原理是通过深度学习模型学习像素与语义类别之间的映射关系,实现对图像内容的精细化理解。在技术实现上,编码器-解码器架构成为主流范式,其中SegNet以其独特的“索引上采样”机制脱颖而出,能更精确地恢复物体边界,为后续U-Net等模型奠定了基础。从技术价值看,掌握SegNet的实现有助于深入理解分割任务的数据处理、模型构建与训练评估全流程,是进阶复杂分割模型的必经之路。在实际应用场景中,语义分割技术已广泛应用于自动

weixin_28678151的博客 232

YoloV11源码解读

本文摘要:文章系统介绍了YOLOv11目标检测算法的实现细节,包括环境搭建、模型结构分析、关键模块原理及损失函数设计。重点解析了Conv、C3k2、C2PSA、SPPF等核心模块的结构和功能,阐述了深度可分离卷积、注意力机制等关键技术。在损失函数部分,详细说明了分类损失(Multi-label BCE)、边界框回归损失(CIoU+DFL)和置信度损失的设计原理。全文通过模块化拆解和公式推导,深入剖析了YOLOv11的网络架构和优化策略,为算法实现和改进提供了全面的技术参考。

benben044的专栏 236

基于STM32与SimpleFOC实现直流无刷电机开环控制的实战指南

本文提供了一份基于STM32微控制器与SimpleFOC开源库实现直流无刷电机开环控制的详细实战指南。内容涵盖硬件连接、PlatformIO环境搭建、核心代码解析及上电测试,旨在帮助开发者快速验证硬件并理解开环控制的基本原理,为后续实现高性能的闭环FOC控制奠定基础。

xxx12的博客 960

torch注册自定义算子并导出onnx(Enet, Centernet)

torch注册自定义算子定义算子计算函数编译生成.so文件测试是否注册成功1. 定义算子的由input到output的计算函数**(op_custom.cpp)**2. 将函数注册到torch中**(op_custom.cpp)**3. 创建setup.py4. 开始编译5. 进行测试->加载模型**(test.py)**第一种:第二种:6. 进行测试->将算子通过symbol注册到torch/onnx(test.py)7. 进行测试->导出模型到onnx(test.py)8. 查看onn

Artyze的博客 9466

Windows显卡TDR超时导致Unity崩溃?手把手教你修改注册表延长响应时间

本文详细解析了Windows显卡TDR超时导致Unity崩溃的问题,并提供了修改注册表延长响应时间的完整解决方案。通过调整TdrDelay和TdrDdiDelay键值,开发者可以有效避免D3D11设备丢失错误,提升Unity编辑器的稳定性。文章还包含显卡驱动优化、系统性能调优等实用技巧,帮助开发者彻底解决编辑器崩溃问题。

weixin_33737774的博客 622

告别实车测试:手把手教你用Vector VT平台搭建OBC/DCDC的HIL测试台架

本文详细介绍了如何利用Vector VT平台搭建新能源汽车OBC/DCDC的HIL测试台架,涵盖硬件选型、模型部署到自动化测试的全流程。通过HIL仿真测试技术,工程师可以高效验证动力域关键部件,大幅缩短开发周期并降低成本,特别适合新能源汽车三电系统的开发验证。

weixin_42659194的博客 338

PyTorch 的 Pooling 和 UnPooling函数中的 indices 参数:nn.MaxPool2d/nn.MaxUnpool2d、F.max_pool2d/F.max_unpool2d

这篇博文主要介绍 PyTorch 的 MaxPooling 和 MAxUnPooling 函数中涉及到的 indices 参数。indices 是“索引”的意思,对于一些结构对称的网络模型,上采样和下采样的结构往往是对称的,我们可以在下采样做 MaxPooling 的时候记录下来最大值所在的位置,当做上采样的时候把最大值还原到其对应的位置,然后其余的位置补 0。indices 参数的作用就是保存 MaxPooling 操作时最大值位置的索引。

qq_43799400的博客 5246

基于Transformers库的BERT模型:一个文本情感分类的实例解析

简介 本文来讲述BERT应用的一个例子,采用预训练好的BERT模型来进行演示。BERT的库来源于Transformers,这是一个由PyTorch编写的库,其集成了多个NLP领域SOTA的模型,比如bert、gpt-2、transformer xl等,并且可以自由选择已经预训练好的模型参数,我们可以基于这些参数进行进一步的训练调试。 Part 1: 利用BERT基于特征的方式进行建模 1、任务与数...

蓝天白云梦的csdn博客 2万+

onnx->trt路线遇见的坑

1. 多卡训练的模型单卡测试; 参考:#https://www.cnblogs.com/wildkid1024/p/13025352.html # kwargs={'map_location':lambda storage, loc: storage.cuda(gpu_id)} def load_GPUS(model,model_path): state_dict = torch.load(model_path,) # create new OrderedDict that doe.

爱CV 1967

Matlab结果性能评价---rms函数(计算矩阵、数组和向量元素均方根)

实例1:创建一个向量(正弦波)并计算其均方根值 实例2:创建一个二维矩阵并计算其均方根值 实例3:计算二维矩阵沿指定维度的均方根值 本例程配套完整源码下载 均方根(Root-Mean-Square Level): 向量x的均方根值为沿着指定的维度执行求和: 语法描述: y = rms(x)返回输入x的均方根值。如果x是行或列向量,y是实数值标量。对于大小尺寸大于1矩阵x,y包含沿x的第一个数组维度计算的均方根值。例如,如果x是N > 1的N*M矩阵,那么y是1*M行向量,对应x矩..

qq_32809093的博客 3万+

嵌入式工程师成长之路(1)——元件基础(完整版)

为什么你的电路总是“玄学”故障?答案藏在这些元件里! 0欧电阻竟能引发信号反射?5V转3.3V电平匹配失败导致MCU烧毁?电容降压设计让电源“滋滋”响?——这些坑,本文全填平! 优快云硬件领域头部博主十年踩坑经验汇总,覆盖电阻、电容、电感核心难点+高频实战问题,让你从“调试地狱”直通“一次成功”!

云轩阁 2万+

关于pytorch转onnx经常出现的问题

关于pytorch转onnx经常出现的问题

Mr_health的博客 2813

【存储原理】IO超时处理 块层block-scsi层之间

【存储原理】IO超时处理 块层block-scsi层之间

sinat_37817094的博客 1024

Pytroch转Onnx实现(Unet的模型转Onnx)

主要是使用torch.onnx.export()这个方法来实现。 Unet的实现参考: 链接: https://blog.csdn.net/weixin_44791964/article/details/108866828. 这位博主写的很详细,b站还有实现视频,手把手教学!!! Onnx转换实现代码 import onnx import torch.onnx from unet import Unet unet=Unet() print(unet) model = torch.load('D:/Pycha

Done___的博客 2375

RTDETR最强结构图 | 包含模型整体结构图 | 全模块展开图 | AiFi模块展开图

RT-DETR 最全结构图

Coding... 9597

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

pytorch转onnx踩坑日记

pytorch转onnx翻车日记

Maple__Boy 2311

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

【pytorch】——ONNX export failed: Couldn‘t export operator aten::adaptive_avg_pool2d

问题: 语义分割网络pspnet导出成onnx的时候报错 分析: 主要是ppm中使用了AdaptiveAvgPool2d 解决方案: onnx中最新的版本好像也是没有AdaptiveAvgPool2d的 因为pytorch是动态尺寸的,所以有AdaptiveAvgPool2d,首先要固定尺寸进行推理 将AdaptiveAvgPool2d替换成AvgPool2d 参考自:https://www.cnblogs.com/xiaosongshine/p/10750908.html import torch a

怡宝2号 4110

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

RuntimeError: ONNX export failed: Couldn‘t export operator aten::adaptive_avg_pool2d

在对ResNet-101模型pth文件转换成onnx文件时,出现问题: 我的解决方法是,将模型中的最后的池化层注释掉了: 改为: 这样就不报错了

weixin_46235937的博客 2053

Pytorch学习日记02-torch.nn中的池化层应用

形象化池化过程,不给任何公式的出现

qq_43617906的博客 409

pytorch API之MaxUnpool2d

可以将多个输入大小映射到相同的输出大小。因此,反演过程可能会变得模棱两可。为了适应这一点,可以在调用中将输出大小(的逆过程,不过并不是完全的逆过程,因为在maxpool2d的过程中,一些最大值的已经丢失。)作为额外的参数传入。具体用法,请参阅下面示例。过程中非最大值被设置为零的部分的反向。的输出,包括最大值的索引,并计算所有。:Maxpool1d的索引号。:一个指定输出大小的。

浩瀚之水的专栏 544

PyTorch 源码解读之即时编译篇

点击上方“AI遇见机器学习”,选择“星标”公众号重磅干货,第一时间送达作者丨OpenMMLab来源丨https://zhuanlan.zhihu.com/p/361101354转自丨Gia...

weixin_36896856的博客 2624
上一篇: tensorboardX 介绍
下一篇: ubuntu中pycharm无法输入汉字
wzg2016
博客等级 码龄10年 539粉丝 493原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值