Pytorch上采样

news2024/11/19 19:41:31

文章目录

    • Upsample
    • 特殊上采样

Upsample

所谓上采样,实则是一个插值过程。所以上采样对象在初始化时,需要指定一个插值类型,Upsample是torch.nn中最基础的上采样类,初始化参数如下

Upsample(size=None, scale_factor=None, mode='nearest', align_corners=None)

其中,scale_factor为上采样的倍数,align_corners为True时,输出的角像素将与输出张量对齐。

插值模式可选值包括

  • nearest 邻近插值
  • linear 线性插值
  • bilinear 双线性插值
  • bicubic 双三次插值
  • trilinear 三线性插值

记scale_factor为 k k k,则输入和输出数组形状的关系如下

1D2D3D
输入 [ N , C , W ] [N,C,W] [N,C,W] [ N , C , H , W ] [N,C,H,W] [N,C,H,W] [ N , C , D , H , W ] [N,C,D,H,W] [N,C,D,H,W]
输出 [ N , C , k W ] [N,C,kW] [N,C,kW] [ N , C , k H , k W ] [N,C,kH,kW] [N,C,kH,kW] [ N , C , k D , k H , k W ] [N,C,kD,kH,kW] [N,C,kD,kH,kW]

下面针对一维数组测试一下

import torch
from torch import nn
x = torch.arange(1, 5, dtype=torch.float32).view(1, 1, 4)
up = nn.Upsample(scale_factor=2, mode='linear')
up(x)
# tensor([[[1.00, 1.25, 1.75, 2.25, 2.75, 3.25, 3.75, 4.00]]])

可见,up将 1 , 2 , 3 , 4 1,2,3,4 1,2,3,4变成了 1.00 , 1.25 , 1.75 , 2.25 , 2.75 , 3.25 , 3.75 , 4.00 1.00, 1.25, 1.75, 2.25, 2.75, 3.25, 3.75, 4.00 1.00,1.25,1.75,2.25,2.75,3.25,3.75,4.00

特殊上采样

可能是针对二维图像的上采样操作比较多,故而pytorch专门为这种情况封装了两个类,并且分别提供了邻近插值和双线性插值,其初始化参数如下

UpsamplingNearest2d(size=None, scale_factor=None)
UpsamplingBilinear2d(size=None, scale_factor=None)

二者的输入均为 N , C , H , W N,C,H,W N,C,H,W,输出均为 N , C , k H , k W N,C,kH,kW N,C,kH,kW,与UpSample的二维情况一致。

x0 = torch.arange(1, 17, dtype=torch.float32).view(1, 1, 4, 4)
upNearest = nn.UpsamplingNearest2d(scale_factor=2)
upBilinear = nn.UpsamplingBilinear2d(scale_factor=2)

xN = upNearest(x0)
xB = upBilinear(x0)

下面可以画一下二者的区别

import matplotlib.pyplot as plt
fig = plt.figure()
for i, x in enumerate([x0, xN, xB],1):
    ax = fig.add_subplot(1,3,i)
    plt.imshow(torch.squeeze(x))

plt.show()

效果如下

在这里插入图片描述

第二个图像为邻近插值,即插入值等于某个附近点的值,所以从结果来看,尽管像素尺寸从 4 × 4 4\times4 4×4变成了 8 × 8 8\times8 8×8,但相邻的 2 × 2 2\times2 2×2的像素格子中,灰度值是一致的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1351606.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机组成原理 主存和CPU连接与主存提速方案

文章目录 主存与CPU的连接译码器线选法译码片选法总结 位拓展字拓展字位同时拓展 主存提速方案存储周期双端口RAM多模块存储器单体多字存储器多模块多体并行存储器存储器高位交叉编址低位交叉编址 主存与CPU的连接 #mermaid-svg-3wv6WzRP2BvKEHQZ {font-family:"trebuchet…

GZ075 云计算应用赛题第1套

2023年全国职业院校技能大赛(高职组) “云计算应用”赛项赛卷1 某企业根据自身业务需求,实施数字化转型,规划和建设数字化平台,平台聚焦“DevOps开发运维一体化”和“数据驱动产品开发”,拟采用开源OpenStack搭建企业内部私有云平台,开源Kubernetes搭建云原生服务平台,…

HTML5 和 CSS3 新特性(常用)

HTML5 的新特性 HTML5 的新增特性主要是针对于以前的不足,增加了一些新的标签、新的表单和新的表单属性等。 这些新特性都有兼容性问题,基本是 IE9 以上版本的浏览器才支持,如果不考虑兼容性问题,可以大量使用这 些新特性。 HTML…

Linux CPU 数据 Metrics 指标解读

过去从未仔细了解过使用 top 和 htop 等命令时显式的CPU信息,本文我们详解解读和标注一下各个数据项的含义,同时和 Ganglia 显式的数据做一个映射。开始前介绍一个小知识,很多查看CPU的命令行工具都是 cat /proc/stat 里的数据,所…

Element-ui自定义input框非空校验

1、vue自定义非空指令: main.js中自定义非空指令 当input框或下拉框中数据更新时,触发校验 Vue.directive(isEmpty,{update:function(el,binding,vnode){if(vnode.componentInstance.value""){el.classList.add("is-required");}e…

使用echarts的bmap配置项绘制区域轮廓遮罩

示例图 代码 <template><div id"map" style"width: 100%; height: 100vh"></div> </template><script> import * as echarts from "echarts"; import "echarts/extension/bmap/bmap"; export default…

软件测试/测试开发丨Pytest结合数据驱动

安装yaml pip install pyyaml pytest结合数据驱动yaml 工程目录结构 数据准备 读取excel文件 openpyxl库的安装 openpyxl库的操作 pytest结合csv实现数据驱动 csv文件介绍 pytest结合json实现数据驱动 最后感谢每一个认真阅读我文章的人&#xff0c;礼尚往来总是要有的&…

Halcon底帽运算bottom_hat

Halcon底帽运算 底帽运算的原理是用原始的二值图像减去闭运算的图像。闭运算的目的是对某些局部区域进行“填补”&#xff0c;如填空洞、使分离的边缘相连接等。而底帽运算正是用来提取这些用于填补的区域的。图&#xff08;a&#xff09;为从二值图像中提取出的亮的区域&…

RKE安装k8s及部署高可用rancher,证书在外面的LB(nginx中)

一 了解 Rancher 1 推荐架构 安装 Rancher 的方式有两种&#xff1a;单节点安装和高可用集群安装。因为单节点安装只适用于测试和 demo 环境&#xff0c;而且单节点安装和高可用集群安装之间不能进行数据迁移&#xff0c;所以推荐从一开始就使用高可用集群安装的方式安装 Ran…

Vue Cli inspect

Vue Cli inspect vue-cli-service inspect&#xff1a;可以使用 vue-cli-service inspect 来审查一个 Vue CLI 项目的 webpack config 使用方法&#xff1a; 1、输出在控制台&#xff1a;vue-cli-service inspect 2、输在在文件中&#xff1a;vue-cli-service inspect -->…

阿里云迁移AWS视频点播技术攻坚

文章目录 &#x1f437; 背景&#x1f9a5; 简述&#x1f425; Aws服务&#x1f99c; AWS CloudFormation&#x1f41e; 问题&#x1f409; 落地方案&#x1f989; Aws vs Aliyun&#x1f344; 避坑指南 &#x1f437; 背景 由于AWS整体成本略低于阿里云&#xff0c;公司决定将…

k8s集群部署Harbor镜像仓库

部署k8s集群参考 https://blog.csdn.net/m0_59933574/article/details/134936188?spm1001.2014.3001.5502https://blog.csdn.net/m0_59933574/article/details/134936188?spm1001.2014.3001.5502 安装Harbor 准备一台干净服务器&#xff0c;关闭防火墙与selinux 下载dock…

rime中州韵 inputShow lua Filter

在 rime中州韵 inputShow lua Translator 一文中&#xff0c;我们通过 inputShow.lua 定制了 inputShow_translator&#xff0c;这使得我们的输入方案可以将用户输入的字符透传到候选列表中来。如下&#x1f447;&#xff1a; &#x1f446;上图中我们在候选列表中看到了 inpu…

C# WinForm MessageBox自定义按键文本 COM组件版

c# 更改弹窗MessageBox按钮文字_c# messagebox.show 字体-CSDN博客 需要用到大佬上传到百度云盘的Hook类&#xff0c;在大佬给的例子的基础上改动了点。 应用时自己加GUID和ProgID。 组件实现&#xff1a; using System; using System.Collections.Generic; using System.L…

Flink Watermark和时间语义

Flink 中的时间语义 时间语义&#xff1a;EventTime&#xff1a;事件创建时间&#xff1b;Ingestion Time&#xff1a;数据进入 Flink 的时间&#xff1b;Processing Time&#xff1a;执行操作算子的本地系统时间&#xff0c;与机器无关。不同的时间语义有不同的应用场合&#…

MySQL之四大引擎、建库建表以及账号管理

目录 一.四大引擎 1.1 InnoDB 1.2 MyISAM 1.3 MEMORY 1.4 Archive 二.数据库管理 2.1 元数据库简介 2.2 元数据库分类 2.3 数据库的增删改查及使用 2.4 MySQL库权限相关 三.数据表管理 3.1 三大范式 3.2 基本数据类型 3.2.1 优化原则 3.2.2 分类 四.数据库账号管理 4.1 相同…

LabVIEW在高精度机器人视觉定位系统中的应用

在现代工业自动化中&#xff0c;精确的机器人视觉定位系统对于提高生产效率和产品质量至关重要。LabVIEW软件&#xff0c;以其卓越的图像处理和自动化控制功能&#xff0c;在这一领域发挥着重要作用。本案例将展示LabVIEW如何帮助开发和实现一个高精度的机器人视觉定位系统&…

【WPF.NET开发】WPF中的输入

本文内容 输入 API事件路由处理输入事件文本输入触摸和操作侧重点鼠标位置鼠标捕获命令输入系统和基元素 Windows Presentation Foundation (WPF) 子系统提供了一个功能强大的 API&#xff0c;用于从各种设备&#xff08;包括鼠标、键盘、触摸和触笔&#xff09;获取输入。 本…

easycython和cython将py编译为pyd对比

前提了解 为了实验的准确性,在全过程使用的python环境版本都为同一版本 easycython和cython编译为pyd文件的不同在于,easycython编译的原始文件后缀为pyx,cython编译的原始文件为py 1.cython 1.1原始文件 def ZWHCythonTest():print("Z_W_H_") def ZWHCython…

C语言数组习题

1.数组遍历 #include <stdio.h>int main(){int i,a[10];for(i0;i<9;i) //对数组元素a[0]~a[9]赋值 a[i]i;for(i9;i>0;i--) //输出a[9]~a[0]共10个数组元素 printf("%d ",a[i]);printf("\n");return 0;} 运行结果&#xff1a; 2.数组应用&a…