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會自動加入激勵函數(shù), 但是 class類net 中, 激勵函數(shù)實際上是在 forward() 功能中才被調(diào)用的
使用class類中的torch.nn.Module,我們可以根據(jù)自己的需求改變傳播過程
如果你需要快速構(gòu)建或者不需要過多的過程,直接使用torch.nn.Sequential吧
補充知識:【PyTorch神經(jīng)網(wǎng)絡(luò)】使用Moudle和Sequential搭建神經(jīng)網(wǎng)絡(luò)
Module:
init中定義每個神經(jīng)層的神經(jīng)元個數(shù),和神經(jīng)元層數(shù);
forward是繼承nn.Moudle中函數(shù),來實現(xiàn)前向反饋(加上激勵函數(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中定義每個神經(jīng)層的神經(jīng)元個數(shù),和神經(jīng)元層數(shù); # forward是繼承nn.Moudle中函數(shù),來實現(xiàn)前向反饋(加上激勵函數(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) #實現(xiàn)所有層的連接關(guān)系。正向傳播輸入值,神經(jīng)網(wǎng)絡(luò)分析輸出值 def forward(self, x): #x首先在隱藏層經(jīng)過激勵函數(shù)的計算 x = F.relu(self.hidden(x)) #到輸出層給出預(yù)測值 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操作就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python如何存儲數(shù)據(jù)到j(luò)son文件
這篇文章主要介紹了Python如何存儲數(shù)據(jù)到j(luò)son文件,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-03-03python實現(xiàn)AHP算法的方法實例(層次分析法)
這篇文章主要給大家介紹了關(guān)于python實現(xiàn)AHP算法(層次分析法)的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09PyTorch在Windows環(huán)境搭建的方法步驟
這篇文章主要介紹了PyTorch在Windows環(huán)境搭建的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05詳解Python的Flask框架中生成SECRET_KEY密鑰的方法
密鑰值的生成功能十分重要,幾乎也是各大Web開發(fā)框架的標(biāo)配,Flask當(dāng)然也不例外,這里我們就來詳解Python的Flask框架中生成SECRET_KEY密鑰的方法2016-06-06