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ù)實(shí)際上是在 forward() 功能中才被調(diào)用的
使用class類中的torch.nn.Module,我們可以根據(jù)自己的需求改變傳播過程
如果你需要快速構(gòu)建或者不需要過多的過程,直接使用torch.nn.Sequential吧
補(bǔ)充知識:【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ù),來實(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ù),來實(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)
#實(shí)現(xiàn)所有層的連接關(guān)系。正向傳播輸入值,神經(jīng)網(wǎng)絡(luò)分析輸出值
def forward(self, x):
#x首先在隱藏層經(jīng)過激勵函數(shù)的計(jì)算
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文件,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-03-03
python實(shí)現(xiàn)AHP算法的方法實(shí)例(層次分析法)
這篇文章主要給大家介紹了關(guān)于python實(shí)現(xiàn)AHP算法(層次分析法)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
PyTorch在Windows環(huán)境搭建的方法步驟
這篇文章主要介紹了PyTorch在Windows環(huán)境搭建的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(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
opencv 圖像腐蝕和圖像膨脹的實(shí)現(xiàn)
這篇文章主要介紹了opencv 圖像腐蝕和圖像膨脹的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07

