最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
pytorch中的nn.ZeroPad2d()零填充函数代码实例
时间:2022-06-25 02:06:11 编辑:袖梨 来源:一聚教程网
本篇文章小编给大家分享一下pytorch中的nn.ZeroPad2d()零填充函数代码实例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。
在卷积神经网络中,有使用设置padding的参数,配合卷积步长,可以使得卷积后的特征图尺寸大小不发生改变,那么在手动实现图片或特征图的边界零填充时,常用的函数是nn.ZeroPad2d(),可以指定tensor的四个方向上的填充,比如左边添加1dim、右边添加2dim、上边添加3dim、下边添加4dim,即指定paddin参数为(1,2,3,4),本文中代码设置的是(3,4,5,6)如下:
import torch.nn as nn import cv2 import torchvision from torchvision.utils import save_image def same_padding(img): toTensor=torchvision.transforms.ToTensor() img=cv2.imread(img)#获得的是(H,W,C) img=cv2.cvtColor(img,cv2.COLOR_BGR2RGB)#转换成正常的RGB通道 print("img_cv2 shape:",img.shape) img_tensor=toTensor(img)#转成tensor后是(C,H,W) print("img_tensor shape:",img_tensor.shape) pad=nn.ZeroPad2d(padding=(3,4,5,6)) img_padding=pad(img_tensor) print("img_padding shape:",img_padding.shape) save_image(img_padding,'img_padding.jpg')#将tensor格式的图片,直接保存成图片 same_padding('bird.jpg')
代码中需要注意的是,必须要将图片数据转换成tensor数据类型的才可以使用nn.zeroPad2d()函数
为了凸显效果图:我们将设置大尺度的0填充
nn.ZeroPad2d(padding=(100,30,60,60))
知识点扩展:pytorch零填充函数ZeroPad2d作用
pytorch中最常用的零填充函数是nn.ZeroPad2d,也就是对Tensor使用0进行边界填充,我们可以指定tensor的四个方向上的填充数,比如左边添加1dim、右边添加2dim、上边添加3dim、下边添加4dim,即指定paddin参数为(1,2,3,4),如下:
pad = nn.ZeroPad2d(padding=(1, 2, 3, 4))
y = pad(x)
得到的y是x在四个方向上按照(1,2,3,4)进行的补零操作,如下图:
相关文章
- “十月朝,糍粑碌碌烧”说的是小雪时节的哪一项习俗 蚂蚁庄园11月22日答案早知道 11-25
- 以闪亮之名宠物礼包怎么样 11-25
- 崩坏星穹铁道星期日用什么光锥 11-25
- 崩坏星穹铁道星期日用什么光锥 崩铁星期日光锥推荐搭配介绍 11-25
- 崩坏星穹铁道星期日技能机制怎么样 崩铁星期日技能机制介绍 11-25
- 崩坏星穹铁道星期日遗器怎么选择 崩铁星期日遗器推荐搭配介绍 11-25