PyTorch 普通卷积和空洞卷积实例
如下所示:
importnumpyasnp
fromtorchvision.transformsimportCompose,ToTensor
fromtorchimportnn
importtorch.nn.initasinit
deftransform():
returnCompose([
ToTensor(),
#Normalize((12,12,12),std=(1,1,1)),
])
arr=range(1,26)
arr=np.reshape(arr,[5,5])
arr=np.expand_dims(arr,2)
arr=arr.astype(np.float32)
#arr=arr.repeat(3,2)
print(arr.shape)
arr=transform()(arr)
arr=arr.unsqueeze(0)
print(arr)
conv1=nn.Conv2d(1,1,3,stride=1,bias=False,dilation=1)#普通卷积
conv2=nn.Conv2d(1,1,3,stride=1,bias=False,dilation=2)#dilation就是空洞率,即间隔
init.constant_(conv1.weight,1)
init.constant_(conv2.weight,1)
out1=conv1(arr)
out2=conv2(arr)
print('standareconv:\n',out1.detach().numpy())
print('dilatedconv:\n',out2.detach().numpy())
输出:
(5,5,1) tensor([[[[1.,2.,3.,4.,5.], [6.,7.,8.,9.,10.], [11.,12.,13.,14.,15.], [16.,17.,18.,19.,20.], [21.,22.,23.,24.,25.]]]]) standareconv: [[[[63.72.81.] [108.117.126.] [153.162.171.]]]] dilatedconv: [[[[117.]]]]
以上这篇PyTorch普通卷积和空洞卷积实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。