Pytorch(二)定義卷積神經網路

2021-08-29 12:24:13 字數 1850 閱讀 5639

個人認為神經網路的的搭建**雖然很簡單,但是確實最為重要的一部分。話不多說,開始介紹。

1)_init_() 初始化網路,定義網路的一些引數,以及他的層結構

2)forward() 定義層結構之間的關係

可能沒太看明白,沒關係看了**你就會很清晰了

import torch

import torch.nn as nn

import torch.nn.functional as f

class net(nn.module): #所有的模型都是module的子類,都繼承了他

def __init__(self): #類中定義的函式都有個引數self

super(net,self).__init__()

self.conv1=nn.conv2d(3,6,5)

#定義了乙個卷積層,三個引數分別代表,輸入的通道數,輸出的#通道數(也就是過濾器的個數),還有過濾器的大小

self.pool=nn.maxpool2d(2,2) #定義乙個池化層,兩個引數分別代表過濾器的大小和步長

self.conv2=nn.conv2d(6,16,5)

self.fc1=nn.linear(16*5*5,120) #定義乙個全連線層

self.fc2=nn.linear(120,84)

self.fc3=nn.linear(84,10)

def forward(self,x): #定義各個層之間的關係

x=self.pool(f.relu(self.conv1(x))) #f.relu()是非線性啟用函式

x=self.pool(f.relu(self.conv2(x)))

x=x.view(-1,16*5*5)

#x.view()是將資料展開在進入全連線層之前對資料進行處理,第乙個引數-1表示這個引數由其他的引數決定,比如知道矩陣的總元素個數還有他的列數你就會知道他的行數,第二個參#數是全連線層的輸入

x=f.relu(self.fc1(x))

x=f.relu(self.fc2(x))

x=self.fc3(x)

return x

#例項化,建立乙個網路

net=net()

print net

參考官方的文件你會發現在torch.nn這個模組中也有非線性啟用函式,然而在上述**中我們使用的是torch.nn.functinal 中的啟用函式。二者的區別:

torch.nn中的啟用函式是使用類定義的

torch.nn.functional中的啟用函式是普通的def() 定義的函式。

如果我們需要儲存每一步啟用的資料的話,需要學習引數的話就需要使用torch.nn中的啟用函式,其他情況下二者沒有什麼區別。

剛開始這塊我沒太明白,在乙個同學的幫助下,得到了解決。

下邊是他給我的解答過程。

通過類定義的物件在訓練的過程裡邊是一直保留著的,裡邊的引數可以跟隨學習調整,達到優化的目的,函式的話每次運算只留下運算結果,裡邊的引數不會記住這次運算的情況,不會變化,再呼叫都是一樣的效果,裡邊不會有可以學習的引數。

比如那個卷積層,卷積核的引數儲存在物件裡,物件不銷毀,裡邊的變數就一直保留在記憶體裡,你可以迭代一次,就在之前的基礎上更新下他們,函式的話,呼叫的時候即使修改了裡邊的變數,也留不下來,下次再呼叫跟上次沒關係

加油,當你看到我的部落格的時候,相信你一定在努力成為最好的自己的路上!

加油,別放棄,堅持,每天一點點,相信一年後的你一定會感謝現在的你!

如果你真的迷茫了,我願當你的傾聽者,但是你千萬不能放棄,因為改變命運的機會真的不多呀!

qq小號:1817780086   

卷積神經網路 pytorch

vocab args.vocab size 已知詞的數量 dim args.embed dim 每個詞向量長度 cla args.class num 類別數 ci 1 輸入的channel數 knum args.kernel num 每種卷積核的數量 ks args.kernel sizes 卷積核...

Pytorch 卷積神經網路

一般而言,輸入層的大小應該能夠被2整除很多次,常用32,64,96,224 盡可能使用小尺寸的濾波器,例如3 3,滑動步長選擇1。需要對輸入資料體進行零填充,保證輸出和輸入一樣的空間大小 對輸入資料空間進行下取樣 不使用的話,會導致影象邊緣資訊過快地損失掉 沒有人能在一開始就想清楚,只有開始做了,你...

卷積神經網路 定義卷積層

import torch in channels,out channels 5,10 in 決定卷積核的channel out 決定卷積核的個數 width,hight 100,100kernel size 3 卷積核的邊長 卷積核一般為奇數邊長正方形 batch size 1input torch...