F.grid_sample
grid_sample用于在pytprch的tensor中做不规则采样,下例从一个5*5的空间a中进行4点采样,采样坐标系为(-1,1),grid取了4个角的点,为了便于观察,填充方式为取最接近的点的取值。可以看到,a空间左上角坐标为[-1,-1],右下角坐标为[1,1]。取值方式有‘nearest’、‘bilinear’。当grid为非平均间隔的坐标点时,即可实现不规则采样
import cv2
# import torch_geometric
import torch
import torch.nn as nn
import numpy as np
import torch.nn.functional as Fa = np.arange(25).reshape(5,5)
a=torch.FloatTensor(list(a)).unsqueeze(0).unsqueeze(0)
grid = torch.tensor([[[-1.0,-1.0],[1.0,-1.0]],[[-1.0,1.0],[1.0,1.0]]]).unsqueeze(0)
# # 目的是得到一个 长宽为2的tensor
# out_h = 2
# out_w = 2
# # grid的生成方式等价于用mesh_grid
# # 都是(-1,1)之间插值
# new_h = torch.linspace(-1, 1, out_h).view(-1, 1).repeat(1, out_w)
# new_w = torch.linspace(-1, 1, out_w).repeat(out_h, 1)
# grid = torch.cat((new_h.unsqueeze(2), new_w.unsqueeze(2)), dim=2)outp = F.grid_sample(a, grid=grid, mode='nearest') # mode用bilinear时,会和周围pad的0平均掉,不便于直接观察print(a.size()) # (N, C, H, W)
print(grid.size()) # (N, H, W, 2)
print(outp.size()) # (N, C, H, W) [1, 1, 2, 2]print(a)
print(grid)
print(outp)"""
torch.Size([1, 1, 5, 5])
torch.Size([1, 2, 2, 2])
torch.Size([1, 1, 2, 2])
tensor([[[[ 0., 1., 2., 3., 4.],[ 5., 6., 7., 8., 9.],[10., 11., 12., 13., 14.],[15., 16., 17., 18., 19.],[20., 21., 22., 23., 24.]]]])
tensor([[[[-1., -1.],[ 1., -1.]],[[-1., 1.],[ 1., 1.]]]])
tensor([[[[ 0., 4.],[20., 24.]]]])"""
F.grid_sample相关推荐
- opencv和pytorch中的warp操作函数:cv2.warpAffine, torch.nn.functional.grid_sample, cv2.warpPerspective
关于图像的warp操作是指利用一个旋转缩放矩阵对图像进行操作. 常见的操作有,平移,绕某个点旋转,缩放. opencv中有getRotationMatrix2D,warpAffine, getAffi ...
- torch.grid_sample
文章目录 基本例子讲解 两种align_corners设置下的函数行为 查询矩阵有重复元素 参考: 双线性插值的理论 Pytorch grid_sample解析 PyTorch中grid_sample ...
- pytorch空间变换网络
pytorch空间变换网络 本文将学习如何使用称为空间变换器网络的视觉注意机制来扩充网络.可以在DeepMind paper 有关空间变换器网络的内容. 空间变换器网络是对任何空间变换的差异化关注的概 ...
- 怎样用Python控制图片人物动起来?一文就能Get!
作者 | 李秋键 责编 | 李雪敬 头图 | CSDN 下载自视觉中国 出品 | AI科技大本营(ID:rgznai100) 引言:近段时间,一个让梦娜丽莎图像动起来的项目火遍了朋友圈.而今天我们就将 ...
- 在PyTorch中进行双线性采样:原理和代码详解
↑ 点击蓝字 关注视学算法 作者丨土豆@知乎 来源丨https://zhuanlan.zhihu.com/p/257958558 编辑丨极市平台 在pytorch中的双线性采样(Bilinear Sa ...
- PyTorch 系列教程之空间变换器网络
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 在本教程中,您将学习如何使用称为空间变换器网络的视觉注意机制来扩充 ...
- 详细解读Spatial Transformer Networks(STN)-一篇文章让你完全理解STN了
Spatial Transformer Networks https://blog.jiangzhenyu.xyz/2018/10/06/Spatial-Transformer-Networks/ 2 ...
- 梯度累加策略对准确率的影响
从曲线整体分析来看等效的(geng_xing_bu_chang*batch_size=等效batch_size的大小,)倍数越大准确率损失越严重(虽然30到300的采样太稀疏但是可以忽略) 如下图 从 ...
- Spatial Transformer Networks(STN)代码分析
这是比较早的关于 attention的 文章了. 早且作用大,效果也不错. 关于这篇文章的解读有很多,一找一大堆,就不再赘述. 首先看看文章的解读,看懂原理,然后找到代码,对着看看,明白之后就自己会改 ...
- 【深度学习】真正的即插即用!盘点11种CNN网络设计中精巧通用的“小”插件...
作者丨皮特潘 编辑丨极市平台 导读 所谓"插件",就是要能锦上添花,又容易植入.落地,即真正的即插即用.本文盘点的"插件"能够提升CNN平移.旋转.scale等 ...
最新文章
- 详解C#break ,continue, return
- j2ee之页面无刷新上传附件
- linux安装mysql详细过程【easy】
- SylixOS中select原理及使用分析
- 第三方软件要使用QQ邮箱进行发邮件相关设置
- 解决: -bash: $‘\302\240docker‘: command not found
- s5pv210——I2C基础详解、I2C时序详解
- VS2015 IIS Express 无法启动 解决办法(转)
- Python操作文件文档
- php把二维数组变为一维,如何将PHP二维数组转换为一维数组
- 动态执行sql语句用法
- 2010-11-25
- radius服务器连接无线网络,验证RADIUS服务器连接用测验AAA RADIUS命令
- 阿里巴巴矢量图标 iconfont 下载图标分辨率小一点、并占得内存小一点呢
- 两个HC05蓝牙模块相互之间的通信
- java+swing+mysql小型超市管理系统
- 苹果手机怎样双开微信?简单2步快速安装苹果版双开助手!
- python数字排列组合去重_python解决排列组合问题的4种方式
- 谷歌 发布android 8,2017谷歌大会正式发布Android 8.0!
- 【实战】在qgis上查看街景照片( go2streetview谷歌街景、go2mapillary)