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

torch.nn.interpolate—torch上采样和下采样操作

前言:

最近博主搭建网络需要用到一些直接对于GPU上的tensor的上采样和下采样操作,如果使用opencv那么就需要先将数据从GPU上面copy到CPU,操作完后在转移到GPU。这样不能利用GPU的加速技术,并且还会导致程序阻塞,pytorch中带有函数interpolate可以实现这个功能,下面详细讲解这个函数的使用。

TORCH.NN.FUNCTIONAL.INTERPOLATE

torch.nn.functional.interpolate(inputsize=Nonescale_factor=Nonemode='nearest'align_corners=Nonerecompute_scale_factor=Noneantialias=False)[SOURCE]

**输入尺寸以以下形式解释: 小批量 x 通道 x [可选深度] x [可选高度] x 宽度。

**向下/向上对给定size 或 给定的输入进行采样scale_factor

**用于插值的算法由 mode确定目前支持时间、空间和体积采样,即预期输入的形状是 3-D、4-D 或 5-D。

***可用于调整大小的模式有(中英文对照)

nearest, linear (3D-only), bilinear, bicubic (4D-only), trilinear (5D-only), area, nearest-exact

最近、线性(仅限 3D)、 双线性、双三次(仅限 4D)、三线性(仅限 5D)、面积、最近精确

Parameters

  • input ( Tensor ) – 输入张量

  • size ( int or Tuple int ] or Tuple int , int ] or Tuple int , int , int ] ) – 输出空间尺寸。

  • scale_factor ( floatTuple float ] ) – 空间大小的乘数。如果scale_factor是一个元组,它的长度必须匹配input.dim()。

  • mode ( str ) – 用于上采样的算法: 'nearest''linear''bilinear''bicubic''trilinear''area''nearest-exact'. 默认:'nearest'

  • align_corners ( bool , optional ) – 在几何上,我们将输入和输出的像素视为正方形而不是点。如果设置为True,则输入和输出张量由其角像素的中心点对齐,保留角像素处的值。如果设置为False,则输入和输出张量通过其角像素的角点对齐,并且插值对边界外的值使用边缘值填充,使得此操作在保持相同时与输入大小无关。scale_factor这仅在mode is 'linear'、或'bilinear'时有效。默认:'bicubic''trilinear'False

  • recompute_scale_factor ( bool , optional ) – 重新计算 scale_factor 以用于插值计算。如果recompute_scale_factor是True,则 必须传入 scale_factor 并且scale_factor用于计算输出大小。计算出的输出大小将用于推断插值的新比例。请注意,当scale_factor为浮点数时,由于舍入和精度问题,它可能与重新计算的scale_factor不同。如果recompute_scale_factor是False,那么size或scale_factor将直接用于插值。默认值:None.

  • antialias ( bool , optional ) -- 应用抗锯齿的标志。默认值:False. 使用 anti-alias 选项和align_corners=False,插值结果将匹配 Pillow 结果以进行下采样操作。支持的模式:'bilinear''bicubic'.

重要note:

上采样和想采样的参数设置不一致,不要弄混了

NOTE

使用mode='bicubic',可能会导致过冲,换句话说,它可以为图像生成负值或大于 255 的值。如果要减少显示图像时的过冲,请显式调用。result.clamp(min=0, max=255)

NOTE

Modemode='nearest-exact'匹配 Scikit-Image 和 PIL 最近邻插值算法,并修复了mode='nearest'. 引入此模式是为了保持向后兼容性。模式mode='nearest'匹配有缺陷的 OpenCV 的INTER_NEAREST插值算法。

NOTE

当给定 CUDA 设备上的张量时,此操作可能会产生不确定的梯度。有关详细信息,请参阅重现性。

相关文章:

  • DBCO-PEG-OPSS/OPSS-PEG-DBCO/二苯并环辛炔聚乙二醇修饰邻吡啶二硫
  • SpringCloud与SpringCloudAlibaba的比较
  • PostgreSQL修炼之道笔记之准备篇(四)
  • Springboot整合Redis集群实战详解
  • 聚乙烯亚胺偶联乳清白蛋白/肌白蛋白/豆清白蛋白/蓖麻蛋白/豌豆白蛋白1b ( PA1b)科研试剂
  • (附源码)流浪动物保护平台的设计与实现 毕业设计 161154
  • springBoot整合SqlSessionTemplate使用
  • jieba—第三方中文分词函数库
  • Python桌面文件清理脚本
  • STM32开发板在RT-Thread中使用segger_rtt软件包
  • SpringBoot异常处理机制之自定义404、500错误提示页面
  • Debezium系列之:深入理解Debezium是如何处理bigint unsigned类型的字段
  • MySQL基础篇【第四篇】| 连接查询、子查询(嵌套)
  • 【Linux】如何实现虚拟机系统与本地系统的通信连接
  • MyBatis 操作数据库
  • 【Leetcode】104. 二叉树的最大深度
  • 【每日笔记】【Go学习笔记】2019-01-10 codis proxy处理流程
  • 3.7、@ResponseBody 和 @RestController
  • Android Volley源码解析
  • Apache Spark Streaming 使用实例
  • CSS实用技巧干货
  • flutter的key在widget list的作用以及必要性
  • MySQL Access denied for user 'root'@'localhost' 解决方法
  • mysql innodb 索引使用指南
  • nodejs:开发并发布一个nodejs包
  • Python实现BT种子转化为磁力链接【实战】
  • React 快速上手 - 06 容器组件、展示组件、操作组件
  • yii2权限控制rbac之rule详细讲解
  • 和 || 运算
  • 互联网大裁员:Java程序员失工作,焉知不能进ali?
  • 面试总结JavaScript篇
  • 数据科学 第 3 章 11 字符串处理
  • 无服务器化是企业 IT 架构的未来吗?
  • 吴恩达Deep Learning课程练习题参考答案——R语言版
  • 小程序、APP Store 需要的 SSL 证书是个什么东西?
  • 在weex里面使用chart图表
  • Hibernate主键生成策略及选择
  • UI设计初学者应该如何入门?
  • ​创新驱动,边缘计算领袖:亚马逊云科技海外服务器服务再进化
  • ​一帧图像的Android之旅 :应用的首个绘制请求
  • #pragma multi_compile #pragma shader_feature
  • #调用传感器数据_Flink使用函数之监控传感器温度上升提醒
  • (09)Hive——CTE 公共表达式
  • (1) caustics\
  • (20050108)又读《平凡的世界》
  • (23)Linux的软硬连接
  • (C语言)共用体union的用法举例
  • (day 2)JavaScript学习笔记(基础之变量、常量和注释)
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (第二周)效能测试
  • (个人笔记质量不佳)SQL 左连接、右连接、内连接的区别
  • (含react-draggable库以及相关BUG如何解决)固定在左上方某盒子内(如按钮)添加可拖动功能,使用react hook语法实现
  • (一)u-boot-nand.bin的下载
  • (转) Face-Resources
  • (转) RFS+AutoItLibrary测试web对话框