PyTorch中的grid_sample函数详解
创作时间:
作者:
@小白创作中心
PyTorch中的grid_sample函数详解
引用
CSDN
1.
https://blog.csdn.net/weixin_42392454/article/details/141608192
grid_sample是PyTorch提供的重要函数,主要用于图像处理中的采样操作。它允许通过给定的采样坐标从输入张量中获取相应的值。当采样坐标包含小数时,grid_sample会使用插值方法计算出对应的值。
函数签名
torch.nn.functional.grid_sample(input, grid, mode='bilinear', padding_mode='zeros', align_corners=True)
参数说明
input:这是一个形状为(N, C, H_in, W_in)的4D张量,其中N是批次大小,C是通道数,H_in和W_in分别是输入特征图的高度和宽度。
grid:这是一个形状为(N, H_out, W_out, 2)的4D张量,表示目标位置的网格。最后一维表示每个位置的(x, y)坐标,值的范围通常在[-1, 1]之间,其中-1对应左/上边界,1对应右/下边界。
mode:指定插值方式,有两个选项:
- 'bilinear'(默认):使用双线性插值。
- 'nearest':使用最近邻插值。
- padding_mode:当采样点超出输入特征图边界时指定填充方式,有三个选项:
- 'zeros'(默认):超出边界的点填充为0。
- 'border':超出边界的点采用边界值填充。
- 'reflection':超出边界的点使用对称填充。
- align_corners:这个参数影响坐标网格的解释方式:
- True:采样网格的边缘点直接对齐到原始特征图的像素格上。
- False:采样网格的边缘点直接对齐到原始特征图的像素格的角点上。
插值方法详解
grid_sample提供两种插值方式:
- mode='bilinear'(默认):
- 进行双线性插值(bilinear interpolation)。当坐标包含小数时,grid_sample会根据周围的像素值来计算出精确的采样结果。这意味着,如果采样点的坐标(即displacement)落在像素之间,grid_sample会根据四个相邻像素的值进行加权平均,生成插值结果。
- 具体来说,如果采样点(x, y)对应的坐标在(i, j)和(i+1, j+1)之间,双线性插值会计算如下:
其中,Δx和Δy是坐标的小数部分,V_{i,j}是像素值。value = (1 - Δx)(1 - Δy) \cdot V_{i,j} + Δx(1 - Δy) \cdot V_{i+1,j} + (1 - Δx)Δy \cdot V_{i,j+1} + ΔxΔy \cdot V_{i+1,j+1}
- mode='nearest':
- 采用最近邻插值(nearest-neighbor interpolation)。如果采样坐标包含小数,grid_sample会取最近的整数位置对应的像素值。
grid坐标范围处理
grid的取值范围是[-1, 1],在函数内部会进行尺度的复原:
real ix = THTensor_fastGet4d(grid, n, h, w, 0);
real iy = THTensor_fastGet4d(grid, n, h, w, 1);
// normalize ix, iy from [-1, 1] to [0, IH-1] & [0, IW-1]
ix = ((ix + 1) / 2) * (IW-1);
iy = ((iy + 1) / 2) * (IH-1);
热门推荐
东契奇表现低迷,小牛队惨遭4连败!
北京看中医哪家医院好?北京中医科排名榜
再谈永字八法和永字八法新思想
将星天德两相扶:古代历法中的天文哲学
塔罗牌的前世是什么意思?如何解读塔罗牌的前世含义?
慢充车可以使用快充吗?
打篮球对身体的好处和技能
大学生社会实践能力的提升策略
阿基米德“数学之神”最早将数学技术应用于物理学
如何应对猫咪挑食?改善猫咪饮食习惯的有效策略
专家详解:瘫痪老人护理的五大关键领域
C语言如何进行换行
湿气太重先别慌,这6种食物帮你去湿气!
翡翠界有“三赌”,你都听过吗?
中考体育考试有哪些注意事项
见识一下!古人的鸳鸯火锅、御寒神器、香薰机……
三班倒工作对人身体危害大吗
如何分析相关情况?分析需要关注哪些方面?
永兴材料行业分析
大学生绩点计算方法与其对未来发展的影响解析
中医药在心血管疾病中的应用研究
1887年蒋介石出生,童年常把小孩打得头破血流,得绰号:瑞元无赖
爱耳日 | 佩戴耳机,您带对了么?
最全总结 | 聊聊 Selenium 隐藏浏览器指纹特征的几种方式
牙齿敏感:如何自我维护?
大牌羽绒服又翻车?靠谱的羽绒服该怎么选?!看这篇就够了→
如何建立良好的人际沟通氛围,如何营造良好的沟通环境
从兴盛到走向衰弱,德国工业经历了什么
欧洲杯巡礼之塞尔维亚:白鹰军团首振翅,头重脚轻是隐患
家庭影院音响你该了解的那些事儿——不同材质线材对音质的影响