欢迎来到代码驿站!

Python代码

当前位置:首页 > 软件编程 > Python代码

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

时间:2022-03-24 11:35:42|栏目:Python代码|点击:

在卷积神经网络中,有使用设置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)进行的补零操作,如下图:

在这里插入图片描述

上一篇:python自动生成证件号的方法示例

栏    目:Python代码

下一篇:如何利用python写GUI及生成.exe可执行文件

本文标题:pytorch中的nn.ZeroPad2d()零填充函数实例详解

本文地址:http://www.codeinn.net/misctech/197121.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有