本文主要是介绍pytorch把图片打成patches,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
我以图片shape[3,308,644],kernel 16*16为例。
1
首先先pad一下图片保证能被kernel完整分开。
先pad图片
C,H,W=t_img.shape
pad_h = (16 - H % 16) % 16
pad_w = (16 - W % 16) % 16t_img = F.pad(t_img, (0, pad_w, 0, pad_h))
变成了[3,320,656]
那么320//16=20 , 656//16=41.
2
然后手动reshape这个tensor,打成patch,然后转换维度,让最后面的是C,patch_w, patch_h
就可以了
t_img=t_img.view(3,20,16,41,16)
# C, H_patch_num, patch_h, W_patch_num, patch_wt_img.permute(1,3,0,2,4)
# H_patch_num, W_patch_num, C, patch_h, patch_w
这篇关于pytorch把图片打成patches的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!