pytorch 如何自定義卷積核權(quán)值參數(shù)
pytorch中構(gòu)建卷積層一般使用nn.Conv2d方法,有些情況下我們需要自定義卷積核的權(quán)值weight,而nn.Conv2d中的卷積參數(shù)是不允許自定義的,此時(shí)可以使用torch.nn.functional.conv2d簡(jiǎn)稱F.conv2d
torch.nn.functional.conv2d(input, weight, bias=None, stride=1, padding=0, dilation=1, groups=1)
F.conv2d可以自己輸入且也必須要求自己輸入卷積權(quán)值weight和偏置bias。因此,構(gòu)建自己想要的卷積核參數(shù),再輸入F.conv2d即可。
下面是一個(gè)用F.conv2d構(gòu)建卷積層的例子
這里為了網(wǎng)絡(luò)模型需要寫成了一個(gè)類:
class CNN(nn.Module):
def __init__(self):
super(CNN, self).__init__()
self.weight = nn.Parameter(torch.randn(16, 1, 5, 5)) # 自定義的權(quán)值
self.bias = nn.Parameter(torch.randn(16)) # 自定義的偏置
def forward(self, x):
x = x.view(x.size(0), -1)
out = F.conv2d(x, self.weight, self.bias, stride=1, padding=0)
return out
值得注意的是,pytorch中各層需要訓(xùn)練的權(quán)重的數(shù)據(jù)類型設(shè)為nn.Parameter,而不是Tensor或者Variable。parameter的require_grad默認(rèn)設(shè)置為true,而Varaible默認(rèn)設(shè)置為False。
補(bǔ)充:pytorch中卷積參數(shù)的理解



kernel_size代表著卷積核,例如kernel_size=3或kernel_size=(3,7);
stride:表明卷積核在像素級(jí)圖像上行走的步長(zhǎng),如圖2,步長(zhǎng)為1;
padding:為上下左右填充的大小,例如padding=0/1/(1,1)/(1,3),
padding=0 不填充;
padding=1/(1,1) 上下左右分別填充1個(gè)格;
padding=(1,3) 高(上下)填充2個(gè)格,寬(左右)填充6個(gè)格;
卷積代碼
torch.nn.Conv2d(512,512,kernel_size=(3,7),stride=2,padding=1)
指定輸出形狀的上采樣
def upsample_add(self,x,y):
_,_,H,W = y.size()
return F.interpolate(x, size=(H,W), mode='bilinear', align_corners=False) + y
反卷積上采樣
output_shape_w=kernel_size_w+(output_w-1)(kernel_size_w-1)+2padding
self.upscore2 = nn.ConvTranspose2d(
512, 1, kernel_size=3, stride=2,padding=0, bias=False)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
pandas實(shí)現(xiàn)excel表格處理并讀取指定sheet的方法
這篇文章主要介紹了pandas實(shí)現(xiàn)excel表格處理并讀取指定sheet的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-02-02
Windows環(huán)境中Python應(yīng)用服務(wù)自啟動(dòng)及其監(jiān)控問題
這篇文章主要介紹了Windows環(huán)境中Python應(yīng)用服務(wù)自啟動(dòng)及其監(jiān)控問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06
Pycharm學(xué)習(xí)教程(4) Python解釋器的相關(guān)配置
這篇文章主要為大家詳細(xì)介紹了最全的Pycharm學(xué)習(xí)教程第四篇,Python解釋器配置,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05
python2與python3中關(guān)于對(duì)NaN類型數(shù)據(jù)的判斷和轉(zhuǎn)換方法
今天小編就為大家分享一篇python2與python3中關(guān)于對(duì)NaN類型數(shù)據(jù)的判斷和轉(zhuǎn)換方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-10-10
Python中的進(jìn)程操作模塊(multiprocess.process)
這篇文章介紹了Python中的進(jìn)程操作模塊(multiprocess.process),文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-05-05
python中的正則表達(dá)式,貪婪匹配與非貪婪匹配方式
這篇文章主要介紹了python中的正則表達(dá)式,貪婪匹配與非貪婪匹配方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01
Python爬蟲+tkinter界面實(shí)現(xiàn)歷史天氣查詢的思路詳解
這篇文章主要介紹了Python爬蟲+tkinter界面實(shí)現(xiàn)歷史天氣查詢的思路詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02

