sampled

更新时间:2022-11-27 11:51:54 阅读: 评论:0


2022年11月27日发(作者:2019高考理综难度)

pytorch中的grid_sample和affine_grid

pytorch中提供了对Tensor进⾏Crop的⽅法,可以使⽤GPU实现。具体函数

是_grid和_sample。前者⽤于⽣成⼆维⽹格,后者对输⼊Tensor按照⽹格进⾏双线性采样。

grid_sample函数中将图像坐标归⼀化到[−1,1],其中0对应-1,width-1对应1。

affine_grid的输⼊是仿射矩阵(Nx2x3)和输出Tensor的尺⼨((NxHxWx2)),输出的是归⼀化的⼆维⽹格。

下⾯进⾏简单的实验:

1.⾸先⽣成⼀个1x1x5x5的Tensor变量

2.裁剪窗⼝为x1=2.5,x2=4.5,y1=0.5,y2=3.5,size为1x1x3x2,根据坐标设置theta矩阵

3.进⾏裁剪,并与numpy计算结果相⽐较。

a=((1,1,5,5))

print(a)

#x1=2.5,x2=4.5,y1=0.5,y2=3.5

#out_w=2,out_h=3

size=((1,1,3,2))

print(size)

#theta

theta_np=([[0.5,0,0.75],[0,0.75,0]]).reshape(1,2,3)

theta=_numpy(theta_np)

print('theta:')

print(theta)

print()

flowfield=_grid(theta,size)

sampled_a=_sample(a,(32))

sampled_a=sampled_().squeeze()

print('sampled_a:')

print(sampled_a)

#computebilinearat(0.5,2.5),using(0,3),(0,4),(1,3),(1,4)

#quicklycompute(/lxlclzy1130/article/details/50922867)

print()

coeff=([[0.5,0.5]])

A=a[0,0,0:2,2:2+2]

print('torchsampledat(0.5,3.5):%.4f'%sampled_a[0,0])

print('numpycompute:%.4f'%((coeff,A),coeff.T).squeeze())

运⾏结果为:

可以看到结果是相同的

Processingmath:100%

本文发布于:2022-11-27 11:51:54,感谢您对本站的认可!

本文链接:http://www.wtabcd.cn/fanwen/fan/90/30832.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:箭竹
下一篇:bleached
标签:sampled
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图