国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

李沐pytorch學習-多層感知機及其實現

這篇具有很好參考價值的文章主要介紹了李沐pytorch學習-多層感知機及其實現。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、多層感知機的定義

????????多層感知機就是全連接層神經網絡,如圖1所示,其中隱含層可以有多層

李沐pytorch學習-多層感知機及其實現,深度學習,pytorch,學習,人工智能

?圖1. 多層感知機結構(隱含層與輸出層之間為全連接,圖中少了幾根連接線)

??????? “層”定義為輸入權重(weight)與偏差(bias)的組合,如圖2所示。

李沐pytorch學習-多層感知機及其實現,深度學習,pytorch,學習,人工智能

?圖2. “層”的定義

二、運行原理

2.1 數據輸入

Input層輸入向量,為每個輸入層節(jié)點的數值,即,如圖3所示。

李沐pytorch學習-多層感知機及其實現,深度學習,pytorch,學習,人工智能

?圖3. 多層感知機數據的輸入(圖中以輸入層3個神經元,一個4神經元的隱含層,兩個輸出神經元為例,可包含多個隱含層,每層神經元個數不固定)

2.2 從輸入層前向傳播到隱含層

先看隱含層單個神經元的數據傳輸情況,如圖4所示,每根連線都有一個權重(weight,),隱含層每個神經元都有一個偏置(bias,),sigmoid為激活函數,此時有

李沐pytorch學習-多層感知機及其實現,深度學習,pytorch,學習,人工智能

李沐pytorch學習-多層感知機及其實現,深度學習,pytorch,學習,人工智能

?圖4. 單個神經元數據傳輸情況

同理有

李沐pytorch學習-多層感知機及其實現,深度學習,pytorch,學習,人工智能

將隱含層數值拼成列向量有:

李沐pytorch學習-多層感知機及其實現,深度學習,pytorch,學習,人工智能

隱含層傳播到下一隱含層,隱含層傳播到輸出層同理。文章來源地址http://www.zghlxwxcb.cn/news/detail-658879.html

三、多層感知機的代碼實現

3.1 從零開始實現

import torch
from torch import nn
from d2l import torch as d2l

# 一個batch更新一次參數,例如訓練集有100個數據
# batch_size = 10,則遍歷訓練集更新10次參數,訓練集完整跑一遍稱為一個 epoch
batch_size = 256

# 下載數據集
train_iter, test_iter = d2l.load_data_fashion_mnist(batch_size)

# 輸入層神經元數,輸出層神經元數,第一層隱含層神經元數
num_inputs, num_outputs, num_hiddens = 784, 10, 256

# 從輸入層到第一隱含層的權重矩陣
W1 = nn.Parameter(torch.randn(
num_inputs, num_hiddens, requires_grad=True) * 0.01)

# 第一隱含層的 bias 矩陣
b1 = nn.Parameter(torch.zeros(num_hiddens, requires_grad=True))

# 從第一隱含層到輸出層的權重矩陣
W2 = nn.Parameter(torch.randn(
num_hiddens, num_outputs, requires_grad=True) * 0.01)

# 輸出層的bias矩陣
b2 = nn.Parameter(torch.zeros(num_outputs, requires_grad=True))

# 所有需要更新的參數
params = [W1, b1, W2, b2]

# 激活函數
def relu(X):
    a = torch.zeros_like(X)
    return torch.max(X, a)

# 網絡
def net(X):
    # 將輸入整理成列向量
    X = X.reshape((-1, num_inputs))

    # 從輸入層到隱含層的計算過程
    H = relu(X@W1 + b1) # 這里“@”代表矩陣乘法

    # 返回從隱含層到輸出層的計算結果
    return (H@W2 + b2)

# 損失函數
loss = nn.CrossEntropyLoss(reduction='none')

# epoch 數和學習率
num_epochs, lr = 10, 0.1

# 優(yōu)化器,即如何訓練,這里使用SGD訓練
updater = torch.optim.SGD(params, lr=lr)

d2l.train_ch3(net, train_iter, test_iter, loss, num_epochs, updater)

3.2 簡潔實現

import torch
from torch import nn
from d2l import torch as d2l

net = nn.Sequential(nn.Flatten(),
    nn.Linear(784, 256),
    nn.ReLU(),
    nn.Linear(256, 10))

def init_weights(m):
    if type(m) == nn.Linear:
        nn.init.normal_(m.weight, std=0.01)

net.apply(init_weights);

batch_size, lr, num_epochs = 256, 0.1, 10
loss = nn.CrossEntropyLoss(reduction='none')
trainer = torch.optim.SGD(net.parameters(), lr=lr)

train_iter, test_iter = d2l.load_data_fashion_mnist(batch_size)
d2l.train_ch3(net, train_iter, test_iter, loss, num_epochs, trainer)

到了這里,關于李沐pytorch學習-多層感知機及其實現的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 【AI】《動手學-深度學習-PyTorch版》筆記(十四):多層感知機

    【AI】《動手學-深度學習-PyTorch版》筆記(十四):多層感知機

    在前面介紹過,使用softmax回歸來處理分類問題時,每個輸出通過都一個仿射函數計算,網絡結構如下,輸入和輸出之間為全鏈接層: 多層感知機就是在輸入和輸出中間再添加一個或多個全鏈接層,將中間的層稱為“隱藏層”,下圖為添加了一個全鏈接層的網絡結構: 現實世

    2024年02月13日
    瀏覽(35)
  • PyTorch深度學習實戰(zhàn) | 基于多層感知機模型和隨機森林模型的某地房價預測

    PyTorch深度學習實戰(zhàn) | 基于多層感知機模型和隨機森林模型的某地房價預測

    簡介: 在現實生活中,除了分類問題外,也存在很多需要預測出具體值的回歸問題,例如年齡預測、房價預測、股價預測等。相比分類問題而言,回歸問題輸出類型為一個連續(xù)值,如下表所示為兩者的區(qū)別。在本文中,將完成房價預測這一回歸問題。 ■ 分類問題與回歸問題

    2023年04月12日
    瀏覽(30)
  • 李沐pytorch學習-卷積網絡及其實現

    李沐pytorch學習-卷積網絡及其實現

    ??????? 卷積計算過程如圖1所示,即輸入矩陣和核函數(filter)對應的位置相乘,然后相加得到輸出對應位置的數。 ? 圖1. 卷積計算過程 ??????? 該過程可以形象地從圖2中展現。 圖2. 二維卷積示意圖 ????????h,w為卷積核的行、列數 ??????? Y為輸出矩陣,它的

    2024年02月11日
    瀏覽(15)
  • 深度學習-多層感知器-建立MLP實現非線性二分類-MLP實現圖像多分類

    深度學習-多層感知器-建立MLP實現非線性二分類-MLP實現圖像多分類

    多層感知器模型框架 MLP模型框架 MLP實現多分類預測 Keras Keras是一個用Python編寫的用于神經網絡開發(fā)的應用接口,調用開接口可以實現神經網絡、卷積神經網絡、循環(huán)神經網絡等常用深度學習算法的開發(fā) 特點: 集成了深度學習中各類成熟的算法,容易安裝和使用,樣例豐富

    2024年01月24日
    瀏覽(28)
  • 《動手學深度學習》——多層感知機

    《動手學深度學習》——多層感知機

    參考資料: 《動手學深度學習》 隱藏層 + 激活函數能夠模擬任何連續(xù)函數。 4.1.2.1 ReLu函數 ReLU ? ( x ) = max ? ( x , 0 ) operatorname{ReLU}(x) = max(x, 0) ReLU ( x ) = max ( x , 0 ) 當輸入為負時,ReLU 的導數為 0 ;當輸出為負時,ReLU 的導數為 1 。 ReLU的優(yōu)勢在于它的求導非常簡單,要么讓

    2024年02月12日
    瀏覽(19)
  • 多層感知機與深度學習算法概述

    多層感知機與深度學習算法概述

    讀研之前那會兒我們曾糾結于機器學習、深度學習、神經網絡這些概念的異同?,F在看來深度學習這一算法竟然容易讓人和他的爸爸機器學習搞混…可見深度學習技術的影響力之大。深度學習,作為機器學習家族中目前最有價值的一種算法,正在悄悄改變著世界以及我們生活

    2024年02月09日
    瀏覽(23)
  • 深度學習實戰(zhàn)(11):使用多層感知器分類器對手寫數字進行分類

    深度學習實戰(zhàn)(11):使用多層感知器分類器對手寫數字進行分類

    1.1 什么是多層感知器(MLP)? MLP 是一種監(jiān)督機器學習 (ML) 算法,屬于前饋人工神經網絡 [1] 類。該算法本質上是在數據上進行訓練以學習函數。給定一組特征和一個目標變量(例如標簽),它會學習一個用于分類或回歸的非線性函數。在本文中,我們將只關注分類案例。

    2024年02月03日
    瀏覽(56)
  • 【深度學習】動手學深度學習(PyTorch版)李沐 2.4.3 梯度【公式推導】

    ??我們可以連接一個多元函數對其所有變量的偏導數,以得到該函數的 梯度 (gradient)向量。 具體而言,設函數 f : R n → R f:mathbb{R}^{n}tomathbb{R} f : R n → R 的輸入是一個 n n n 維向量 x ? = [ x 1 x 2 ? ? ? x n ] vec x=begin{bmatrix} x_1\\\\x_2\\\\···\\\\x_nend{bmatrix} x = ? x 1 ? x 2 ?

    2024年01月17日
    瀏覽(22)
  • 16 PyTorch 神經網絡基礎【李沐動手學深度學習v2】

    16 PyTorch 神經網絡基礎【李沐動手學深度學習v2】

    在構造自定義塊之前,我們先回顧一下多層感知機的代碼。 下面的代碼生成一個網絡,其中包含一個具有256個單元和ReLU激活函數的全連接隱藏層, 然后是一個具有10個隱藏單元且不帶激活函數的全連接輸出層。 層和塊 構造單層神經網咯:線性層+RELU+線性層 生成2x20(2是批量

    2024年03月10日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包