一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

在PyTorch中使用ReLU激活函數(shù)的例子

給予聽(tīng)風(fēng) ? 來(lái)源:給予聽(tīng)風(fēng) ? 作者:給予聽(tīng)風(fēng) ? 2022-07-06 15:27 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

PyTorch已為我們實(shí)現(xiàn)了大多數(shù)常用的非線性激活函數(shù),我們可以像使用任何其他的層那樣使用它們。讓我們快速看一個(gè)在PyTorch中使用ReLU激活函數(shù)的例子:

在上面這個(gè)例子中,輸入是包含兩個(gè)正值、兩個(gè)負(fù)值的張量,對(duì)其調(diào)用ReLU函數(shù),負(fù)值將取為0,正值則保持不變。

現(xiàn)在我們已經(jīng)了解了構(gòu)建神經(jīng)網(wǎng)絡(luò)架構(gòu)的大部分細(xì)節(jié),我們來(lái)構(gòu)建一個(gè)可用于解決真實(shí)問(wèn)題的深度學(xué)習(xí)架構(gòu)。上一章中,我們使用了簡(jiǎn)單的方法,因而可以只關(guān)注深度學(xué)習(xí)算法如何工作。后面將不再使用這種方式構(gòu)建架構(gòu),而是使用PyTorch中正常該用的方式構(gòu)建。

1.PyTorch構(gòu)建深度學(xué)習(xí)算法的方式

PyTorch中所有網(wǎng)絡(luò)都實(shí)現(xiàn)為類,創(chuàng)建PyTorch類的子類要調(diào)用nn.Module,并實(shí)現(xiàn)__init__和forward方法。在init方法中初始化層,這一點(diǎn)已在前一節(jié)講過(guò)。在forward方法中,把輸入數(shù)據(jù)傳給init方法中初始化的層,并返回最終的輸出。非線性函數(shù)經(jīng)常被forward函數(shù)直接使用,init方法也會(huì)使用一些。下面的代碼片段展示了深度學(xué)習(xí)架構(gòu)是如何用PyTrorch實(shí)現(xiàn)的:

如果你是Python新手,上述代碼可能會(huì)比較難懂,但它全部要做的就是繼承一個(gè)父類,并實(shí)現(xiàn)父類中的兩個(gè)方法。在Python中,我們通過(guò)將父類的名字作為參數(shù)傳入來(lái)創(chuàng)建子類。init方法相當(dāng)于Python中的構(gòu)造器,super方法用于將子類的參數(shù)傳給父類,我們的例子中父類就是nn.Module。

2.不同機(jī)器學(xué)習(xí)問(wèn)題的模型架構(gòu)

待解決的問(wèn)題種類將基本決定我們將要使用的層,處理序列化數(shù)據(jù)問(wèn)題的模型從線性層開始,一直到長(zhǎng)短期記憶(LSTM)層?;谝鉀Q的問(wèn)題類別,最后一層是確定的。使用機(jī)器學(xué)習(xí)或深度學(xué)習(xí)算法解決的問(wèn)題通常有三類,最后一層的情況通常如下。

·對(duì)于回歸問(wèn)題,如預(yù)測(cè)T恤衫的銷售價(jià)格,最后使用的是有一個(gè)輸出的線性層,輸出值為連續(xù)的。

·將一張給定的圖片歸類為T恤衫或襯衫,用到的是sigmoid激活函數(shù),因?yàn)樗妮敵鲋挡皇墙咏?就是接近0,這種問(wèn)題通常稱為二分類問(wèn)題。

·對(duì)于多類別分類問(wèn)題,如必須把給定的圖片歸類為T恤、牛仔褲、襯衫或連衣裙,網(wǎng)絡(luò)最后將使用softmax層。讓我們拋開數(shù)學(xué)原理來(lái)直觀理解softmax的作用。舉例來(lái)說(shuō),它從前一線性層獲取輸入,并輸出給定數(shù)量樣例上的概率。在我們的例子中,將訓(xùn)練它預(yù)測(cè)每個(gè)圖片類別的4種概率。記住,所有概率相加的總和必然為1。

3.損失函數(shù)

一旦定義好了網(wǎng)絡(luò)架構(gòu),還剩下最重要的兩步。一步是評(píng)估網(wǎng)絡(luò)執(zhí)行特定的回歸或分類任務(wù)時(shí)表現(xiàn)的優(yōu)異程度,另一步是優(yōu)化權(quán)重。

優(yōu)化器(梯度下降)通常接受一個(gè)標(biāo)量值,因而loss函數(shù)應(yīng)生成一個(gè)標(biāo)量值,并使其在訓(xùn)練期間最小化。某些用例,如預(yù)測(cè)道路上障礙物的位置并判斷是否為行人,將需要兩個(gè)或更多損失函數(shù)。即使在這樣的場(chǎng)景下,我們也需要把損失組合成一個(gè)優(yōu)化器可以最小化的標(biāo)量。最后一章將詳細(xì)討論把多個(gè)損失值組合成一個(gè)標(biāo)量的真實(shí)例子。

上一章中,我們定義了自己的loss函數(shù)。PyTorch提供了經(jīng)常使用的loss函數(shù)的實(shí)現(xiàn)。我們看看回歸和分類問(wèn)題的loss函數(shù)。

回歸問(wèn)題經(jīng)常使用的loss函數(shù)是均方誤差(MSE)。它和前面一章實(shí)現(xiàn)的loss函數(shù)相同??梢允褂肞yTorch中實(shí)現(xiàn)的loss函數(shù),如下所示:

對(duì)于分類問(wèn)題,我們使用交叉熵?fù)p失函數(shù)。在介紹交叉熵的數(shù)學(xué)原理之前,先了解下交叉熵?fù)p失函數(shù)做的事情。它計(jì)算用于預(yù)測(cè)概率的分類網(wǎng)絡(luò)的損失值,損失總和應(yīng)為1,就像softmax層一樣。當(dāng)預(yù)測(cè)概率相對(duì)正確概率發(fā)散時(shí),交叉熵?fù)p失增加。例如,如果我們的分類算法對(duì)圖3.5為貓的預(yù)測(cè)概率值為0.1,而實(shí)際上這是只熊貓,那么交叉熵?fù)p失就會(huì)更高。如果預(yù)測(cè)的結(jié)果和真實(shí)標(biāo)簽相近,那么交叉熵?fù)p失就會(huì)更低。

圖3.5

下面是用Python代碼實(shí)現(xiàn)這種場(chǎng)景的例子。

為了在分類問(wèn)題中使用交叉熵?fù)p失,我們真得不需要擔(dān)心內(nèi)部發(fā)生的事情——只要記住,預(yù)測(cè)差時(shí)損失值高,預(yù)測(cè)好時(shí)損失值低。PyTorch提供了loss函數(shù)的實(shí)現(xiàn),可以按照如下方式使用。

PyTorch包含的其他一些loss函數(shù)如表3.1所示。

表3.1

L1 loss

通常作為正則化器使用;第4章將進(jìn)一步講述

MSE loss

均方誤差損失,用于回歸問(wèn)題的損失函數(shù)

Cross-entropy loss

交叉熵?fù)p失,用于二分類和多類別分類問(wèn)題

NLL Loss

用于分類問(wèn)題,允許用戶使用特定的權(quán)重處理不平衡數(shù)據(jù)集

NLL Loss2d

用于像素級(jí)分類,通常和圖像分割問(wèn)題有關(guān)

4.優(yōu)化網(wǎng)絡(luò)架構(gòu)

計(jì)算出網(wǎng)絡(luò)的損失之后,需要優(yōu)化權(quán)重以減少損失,并改善算法準(zhǔn)確率。簡(jiǎn)單起見(jiàn),讓我們看看作為黑盒的優(yōu)化器,它們接受損失函數(shù)和所有的學(xué)習(xí)參數(shù),并微量調(diào)整來(lái)改善網(wǎng)絡(luò)性能。PyTorch提供了深度學(xué)習(xí)中經(jīng)常用到的大多數(shù)優(yōu)化器。如果大家想研究這些優(yōu)化器內(nèi)部的動(dòng)作,了解其數(shù)學(xué)原理,強(qiáng)烈建議瀏覽以下博客:

PyTorch提供的一些常用的優(yōu)化器如下:

·ADADELTA

·Adagrad

·Adam

·SparseAdam

·Adamax

·ASGD

·LBFGS

·RMSProp

·Rprop

·SGD

最后歡迎大家一起討論,共同進(jìn)步,共同學(xué)習(xí)

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4381

    瀏覽量

    64895
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4827

    瀏覽量

    86762
  • pytorch
    +關(guān)注

    關(guān)注

    2

    文章

    809

    瀏覽量

    13963
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    利用Arm Kleidi技術(shù)實(shí)現(xiàn)PyTorch優(yōu)化

    PyTorch 是一個(gè)廣泛應(yīng)用的開源機(jī)器學(xué)習(xí) (ML) 庫(kù)。近年來(lái),Arm 與合作伙伴通力協(xié)作,持續(xù)改進(jìn) PyTorch 的推理性能。本文將詳細(xì)介紹如何利用 Arm Kleidi 技術(shù)提升 Arm
    的頭像 發(fā)表于 12-23 09:19 ?1059次閱讀
    利用Arm Kleidi技術(shù)實(shí)現(xiàn)<b class='flag-5'>PyTorch</b>優(yōu)化

    AI模型部署邊緣設(shè)備的奇妙之旅:目標(biāo)檢測(cè)模型

    。 總的來(lái)說(shuō),Leaky ReLU是一個(gè)簡(jiǎn)單而有效的激活函數(shù),它可以改善某些情況下傳統(tǒng)ReLU的局限性。然而,選擇
    發(fā)表于 12-19 14:33

    PyTorch 2.5.1: Bugs修復(fù)版發(fā)布

    ? 一,前言 深度學(xué)習(xí)框架的不斷迭代中,PyTorch 社區(qū)始終致力于提供更穩(wěn)定、更高效的工具。最近,PyTorch 2.5.1 版本正式發(fā)布,這個(gè)版本主要針對(duì) 2.5.0 中發(fā)現(xiàn)的問(wèn)題進(jìn)行了修復(fù)
    的頭像 發(fā)表于 12-03 16:11 ?1622次閱讀
    <b class='flag-5'>PyTorch</b> 2.5.1: Bugs修復(fù)版發(fā)布

    PyTorch 數(shù)據(jù)加載與處理方法

    PyTorch 是一個(gè)流行的開源機(jī)器學(xué)習(xí)庫(kù),它提供了強(qiáng)大的工具來(lái)構(gòu)建和訓(xùn)練深度學(xué)習(xí)模型。構(gòu)建模型之前,一個(gè)重要的步驟是加載和處理數(shù)據(jù)。 1. PyTorch 數(shù)據(jù)加載基礎(chǔ)
    的頭像 發(fā)表于 11-05 17:37 ?937次閱讀

    使用PyTorch英特爾獨(dú)立顯卡上訓(xùn)練模型

    PyTorch 2.5重磅更新:性能優(yōu)化+新特性》中的一個(gè)新特性就是:正式支持英特爾獨(dú)立顯卡上訓(xùn)練模型!
    的頭像 發(fā)表于 11-01 14:21 ?2054次閱讀
    使用<b class='flag-5'>PyTorch</b><b class='flag-5'>在</b>英特爾獨(dú)立顯卡上訓(xùn)練模型

    Pytorch深度學(xué)習(xí)訓(xùn)練的方法

    掌握這 17 種方法,用最省力的方式,加速你的 Pytorch 深度學(xué)習(xí)訓(xùn)練。
    的頭像 發(fā)表于 10-28 14:05 ?659次閱讀
    <b class='flag-5'>Pytorch</b>深度學(xué)習(xí)訓(xùn)練的方法

    反向電流應(yīng)用中使用比較器

    電子發(fā)燒友網(wǎng)站提供《反向電流應(yīng)用中使用比較器.pdf》資料免費(fèi)下載
    發(fā)表于 09-19 12:50 ?0次下載
    <b class='flag-5'>在</b>反向電流應(yīng)用<b class='flag-5'>中使</b>用比較器

    stuido中使用hal函數(shù)使用tim中斷使能,程序進(jìn)b Infinite_Loop,為什么?

    stuido中使用hal函數(shù)使用tim中斷使能,導(dǎo)致程序進(jìn) b Infinite_Loop。
    發(fā)表于 09-13 07:21

    基于Pytorch訓(xùn)練并部署ONNX模型TDA4應(yīng)用筆記

    電子發(fā)燒友網(wǎng)站提供《基于Pytorch訓(xùn)練并部署ONNX模型TDA4應(yīng)用筆記.pdf》資料免費(fèi)下載
    發(fā)表于 09-11 09:24 ?0次下載
    基于<b class='flag-5'>Pytorch</b>訓(xùn)練并部署ONNX模型<b class='flag-5'>在</b>TDA4應(yīng)用筆記

    設(shè)計(jì)中使用MOSFET安全工作區(qū)曲線

    電子發(fā)燒友網(wǎng)站提供《設(shè)計(jì)中使用MOSFET安全工作區(qū)曲線.pdf》資料免費(fèi)下載
    發(fā)表于 09-07 10:55 ?2次下載
    <b class='flag-5'>在</b>設(shè)計(jì)<b class='flag-5'>中使</b>用MOSFET安全工作區(qū)曲線

    設(shè)計(jì)中使用MOSFET瞬態(tài)熱阻抗曲線

    電子發(fā)燒友網(wǎng)站提供《設(shè)計(jì)中使用MOSFET瞬態(tài)熱阻抗曲線.pdf》資料免費(fèi)下載
    發(fā)表于 08-28 09:21 ?19次下載
    <b class='flag-5'>在</b>設(shè)計(jì)<b class='flag-5'>中使</b>用MOSFET瞬態(tài)熱阻抗曲線

    pytorch怎么pycharm中運(yùn)行

    第一部分:PyTorch和PyCharm的安裝 1.1 安裝PyTorch PyTorch是一個(gè)開源的機(jī)器學(xué)習(xí)庫(kù),用于構(gòu)建和訓(xùn)練神經(jīng)網(wǎng)絡(luò)。要在PyCharm中使
    的頭像 發(fā)表于 08-01 16:22 ?2552次閱讀

    pycharm如何調(diào)用pytorch

    與PyCharm結(jié)合使用,可以提高開發(fā)效率和代碼質(zhì)量。 安裝PyTorch 2.1 檢查Python版本 安裝PyTorch之前,請(qǐng)確保您的Python版本為3.6或更高??梢酝ㄟ^(guò)以下命令檢查
    的頭像 發(fā)表于 08-01 15:41 ?1225次閱讀

    pytorch環(huán)境搭建詳細(xì)步驟

    PyTorch作為一個(gè)廣泛使用的深度學(xué)習(xí)框架,其環(huán)境搭建對(duì)于從事機(jī)器學(xué)習(xí)和深度學(xué)習(xí)研究及開發(fā)的人員來(lái)說(shuō)至關(guān)重要。以下將介紹PyTorch環(huán)境搭建的詳細(xì)步驟,包括安裝Anaconda、配置清華鏡像源
    的頭像 發(fā)表于 08-01 15:38 ?1869次閱讀

    pytorch和python的關(guān)系是什么

    ,PyTorch已經(jīng)成為了一個(gè)非常受歡迎的框架。本文將介紹PyTorch和Python之間的關(guān)系,以及它們深度學(xué)習(xí)領(lǐng)域的應(yīng)用。 Python簡(jiǎn)介 Python是一種高級(jí)、解釋型、通用的編程語(yǔ)言,由Guido van Rossu
    的頭像 發(fā)表于 08-01 15:27 ?3284次閱讀