服务器之家

服务器之家 > 正文

pytorch中的nn.ZeroPad2d()零填充函数实例详解

时间:2021-10-09 00:27     来源/作者:halo_wm

在卷积神经网络中,有使用设置padding的参数,配合卷积步长,可以使得卷积后的特征图尺寸大小不发生改变,那么在手动实现图片或特征图的边界零填充时,常用的函数是nn.zeropad2d(),可以指定tensor的四个方向上的填充,比如左边添加1dim、右边添加2dim、上边添加3dim、下边添加4dim,即指定paddin参数为(1,2,3,4),本文中代码设置的是(3,4,5,6)如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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填充

?
1
nn.zeropad2d(padding=(100,30,60,60))

pytorch中的nn.ZeroPad2d()零填充函数实例详解

知识点扩展: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)进行的补零操作,如下图:

pytorch中的nn.ZeroPad2d()零填充函数实例详解

到此这篇关于pytorch中的nn.zeropad2d()零填充函数实例详解的文章就介绍到这了,更多相关pytorch 零填充函数内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/qq_37937847/article/details/115656157

相关文章

热门资讯

yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
2021年耽改剧名单 2021要播出的59部耽改剧列表
2021年耽改剧名单 2021要播出的59部耽改剧列表 2021-03-05
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
返回顶部