pytorch中的nn.ZeroPad2d()零填充函數(shù)實例詳解
在卷積神經(jīng)網(wǎng)絡(luò)中,有使用設(shè)置padding的參數(shù),配合卷積步長,可以使得卷積后的特征圖尺寸大小不發(fā)生改變,那么在手動實現(xiàn)圖片或特征圖的邊界零填充時,常用的函數(shù)是nn.ZeroPad2d(),可以指定tensor的四個方向上的填充,比如左邊添加1dim、右邊添加2dim、上邊添加3dim、下邊添加4dim,即指定paddin參數(shù)為(1,2,3,4),本文中代碼設(shè)置的是(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)#轉(zhuǎn)換成正常的RGB通道
print("img_cv2 shape:",img.shape)
img_tensor=toTensor(img)#轉(zhuǎn)成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')
代碼中需要注意的是,必須要將圖片數(shù)據(jù)轉(zhuǎn)換成tensor數(shù)據(jù)類型的才可以使用nn.zeroPad2d()函數(shù)
為了凸顯效果圖:我們將設(shè)置大尺度的0填充
nn.ZeroPad2d(padding=(100,30,60,60))

知識點擴展:pytorch零填充函數(shù)ZeroPad2d作用
pytorch中最常用的零填充函數(shù)是nn.ZeroPad2d,也就是對Tensor使用0進行邊界填充,我們可以指定tensor的四個方向上的填充數(shù),比如左邊添加1dim、右邊添加2dim、上邊添加3dim、下邊添加4dim,即指定paddin參數(shù)為(1,2,3,4),如下:
pad = nn.ZeroPad2d(padding=(1, 2, 3, 4))
y = pad(x)
得到的y是x在四個方向上按照(1,2,3,4)進行的補零操作,如下圖:

到此這篇關(guān)于pytorch中的nn.ZeroPad2d()零填充函數(shù)實例詳解的文章就介紹到這了,更多相關(guān)pytorch 零填充函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python光學(xué)仿真學(xué)習(xí)處理高斯光束分布圖像
這篇文章主要為大家介紹了Python光學(xué)仿真學(xué)習(xí)之如何處理高斯光束的分布圖像,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步2021-10-10
Python打包代碼成exe可執(zhí)行文件的方法總結(jié)
將Python代碼打包成可執(zhí)行文件(.exe)是一種非常有效的解決方案,能夠使用戶無需安裝Python環(huán)境即可直接運行程序,本文整理了一些常見的方法,希望對大家有所幫助2024-10-10
python 實現(xiàn)多維數(shù)組轉(zhuǎn)向量
今天小編就為大家分享一篇python 實現(xiàn)多維數(shù)組轉(zhuǎn)向量,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11

