pytorch快速搭建神經(jīng)網(wǎng)絡(luò)_Sequential操作
之前用Class類來搭建神經(jīng)網(wǎng)絡(luò)
class Neuro_net(torch.nn.Module): """神經(jīng)網(wǎng)絡(luò)""" def __init__(self, n_feature, n_hidden_layer, n_output): super(Neuro_net, self).__init__() self.hidden_layer = torch.nn.Linear(n_feature, n_hidden_layer) self.output_layer = torch.nn.Linear(n_hidden_layer, n_output) def forward(self, input): hidden_out = torch.relu(self.hidden_layer(input)) out = self.output_layer(hidden_out) return out net = Neuro_net(2, 10, 2) print(net)
class類圖結(jié)構(gòu):
使用torch.nn.Sequential() 快速搭建神經(jīng)網(wǎng)絡(luò)
net = torch.nn.Sequential( torch.nn.Linear(2, 10), torch.nn.ReLU(), torch.nn.Linear(10, 2) ) print(net)
Sequential圖結(jié)構(gòu)
總結(jié):
我們可以發(fā)現(xiàn),使用torch.nn.Sequential會(huì)自動(dòng)加入激勵(lì)函數(shù), 但是 class類net 中, 激勵(lì)函數(shù)實(shí)際上是在 forward() 功能中才被調(diào)用的
使用class類中的torch.nn.Module,我們可以根據(jù)自己的需求改變傳播過程
如果你需要快速構(gòu)建或者不需要過多的過程,直接使用torch.nn.Sequential吧
補(bǔ)充知識(shí):【PyTorch神經(jīng)網(wǎng)絡(luò)】使用Moudle和Sequential搭建神經(jīng)網(wǎng)絡(luò)
Module:
init中定義每個(gè)神經(jīng)層的神經(jīng)元個(gè)數(shù),和神經(jīng)元層數(shù);
forward是繼承nn.Moudle中函數(shù),來實(shí)現(xiàn)前向反饋(加上激勵(lì)函數(shù))
# -*- coding: utf-8 -*- # @Time : 2019/11/5 10:43 # @Author : Chen # @File : neural_network_impl.py # @Software: PyCharm import torch import torch.nn.functional as F #data x = torch.unsqueeze(torch.linspace(-1, 1, 100), dim=1) y = x.pow(2) + 0.2 * torch.rand(x.size()) #第一種搭建方法:Module # 其中,init中定義每個(gè)神經(jīng)層的神經(jīng)元個(gè)數(shù),和神經(jīng)元層數(shù); # forward是繼承nn.Moudle中函數(shù),來實(shí)現(xiàn)前向反饋(加上激勵(lì)函數(shù)) class Net(torch.nn.Module): def __init__(self): #繼承__init__函數(shù) super(Net, self).__init__() #定義每層的形式 #隱藏層線性輸出feature->hidden self.hidden = torch.nn.Linear(1, 10) #輸出層線性輸出hidden->output self.predict = torch.nn.Linear(10, 1) #實(shí)現(xiàn)所有層的連接關(guān)系。正向傳播輸入值,神經(jīng)網(wǎng)絡(luò)分析輸出值 def forward(self, x): #x首先在隱藏層經(jīng)過激勵(lì)函數(shù)的計(jì)算 x = F.relu(self.hidden(x)) #到輸出層給出預(yù)測(cè)值 x = self.predict(x) return x net = Net() print(net) print('\n\n') #快速搭建:Sequential #模板:net2 = torch.nn.Sequential() net2 = torch.nn.Sequential( torch.nn.Linear(1, 10), torch.nn.ReLU(), torch.nn.Linear(10, 1) ) print(net2)
以上這篇pytorch快速搭建神經(jīng)網(wǎng)絡(luò)_Sequential操作就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python如何存儲(chǔ)數(shù)據(jù)到j(luò)son文件
這篇文章主要介紹了Python如何存儲(chǔ)數(shù)據(jù)到j(luò)son文件,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03python實(shí)現(xiàn)AHP算法的方法實(shí)例(層次分析法)
這篇文章主要給大家介紹了關(guān)于python實(shí)現(xiàn)AHP算法(層次分析法)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09PyTorch在Windows環(huán)境搭建的方法步驟
這篇文章主要介紹了PyTorch在Windows環(huán)境搭建的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05詳解Python的Flask框架中生成SECRET_KEY密鑰的方法
密鑰值的生成功能十分重要,幾乎也是各大Web開發(fā)框架的標(biāo)配,Flask當(dāng)然也不例外,這里我們就來詳解Python的Flask框架中生成SECRET_KEY密鑰的方法2016-06-06opencv 圖像腐蝕和圖像膨脹的實(shí)現(xiàn)
這篇文章主要介紹了opencv 圖像腐蝕和圖像膨脹的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07