日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

在PyTorch中使用ReLU激活函數的例子

給予聽風 ? 來源:給予聽風 ? 作者:給予聽風 ? 2022-07-06 15:27 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

在上面這個例子中,輸入是包含兩個正值、兩個負值的張量,對其調用ReLU函數,負值將取為0,正值則保持不變。

現在我們已經了解了構建神經網絡架構的大部分細節(jié),我們來構建一個可用于解決真實問題的深度學習架構。上一章中,我們使用了簡單的方法,因而可以只關注深度學習算法如何工作。后面將不再使用這種方式構建架構,而是使用PyTorch中正常該用的方式構建。

1.PyTorch構建深度學習算法的方式

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

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

2.不同機器學習問題的模型架構

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

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

·將一張給定的圖片歸類為T恤衫或襯衫,用到的是sigmoid激活函數,因為它的輸出值不是接近1就是接近0,這種問題通常稱為二分類問題。

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

3.損失函數

一旦定義好了網絡架構,還剩下最重要的兩步。一步是評估網絡執(zhí)行特定的回歸或分類任務時表現的優(yōu)異程度,另一步是優(yōu)化權重。

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

上一章中,我們定義了自己的loss函數。PyTorch提供了經常使用的loss函數的實現。我們看看回歸和分類問題的loss函數。

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

對于分類問題,我們使用交叉熵損失函數。在介紹交叉熵的數學原理之前,先了解下交叉熵損失函數做的事情。它計算用于預測概率的分類網絡的損失值,損失總和應為1,就像softmax層一樣。當預測概率相對正確概率發(fā)散時,交叉熵損失增加。例如,如果我們的分類算法對圖3.5為貓的預測概率值為0.1,而實際上這是只熊貓,那么交叉熵損失就會更高。如果預測的結果和真實標簽相近,那么交叉熵損失就會更低。

圖3.5

下面是用Python代碼實現這種場景的例子。

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

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

表3.1

L1 loss

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

MSE loss

均方誤差損失,用于回歸問題的損失函數

Cross-entropy loss

交叉熵損失,用于二分類和多類別分類問題

NLL Loss

用于分類問題,允許用戶使用特定的權重處理不平衡數據集

NLL Loss2d

用于像素級分類,通常和圖像分割問題有關

4.優(yōu)化網絡架構

計算出網絡的損失之后,需要優(yōu)化權重以減少損失,并改善算法準確率。簡單起見,讓我們看看作為黑盒的優(yōu)化器,它們接受損失函數和所有的學習參數,并微量調整來改善網絡性能。PyTorch提供了深度學習中經常用到的大多數優(yōu)化器。如果大家想研究這些優(yōu)化器內部的動作,了解其數學原理,強烈建議瀏覽以下博客:

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

·ADADELTA

·Adagrad

·Adam

·SparseAdam

·Adamax

·ASGD

·LBFGS

·RMSProp

·Rprop

·SGD

最后歡迎大家一起討論,共同進步,共同學習

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • 函數
    +關注

    關注

    3

    文章

    4422

    瀏覽量

    67876
  • python
    +關注

    關注

    58

    文章

    4889

    瀏覽量

    90330
  • pytorch
    +關注

    關注

    2

    文章

    813

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    如何同時多個進程中使用 IMX-SMW ELE 后端?

    加密 API 作為 mbedts 的加密驅動程序。我們 HSM ELE 中生成一個私密密鑰。我們的應用程序 mbedtls 中使用私鑰將其加載為不透明密鑰。不同進程中運行的多個
    發(fā)表于 04-17 09:47

    如何激活 alsa 音序器?

    來過濾硬件事件。我瀏覽了一些我知道的 alsa 文件,但無法弄清楚如何激活 alsa 音序器。 這是怎么做到的,或者它根本沒有包含在 image69 中?
    發(fā)表于 03-24 06:33

    PyTorch 中RuntimeError分析

    ? 錯誤原因 這個 RuntimeError 是因為 PyTorch 中,upsample_nearest2d_out_frame(最近鄰2D上采樣)操作尚未對 BFloat16 數據類型提供
    發(fā)表于 03-06 06:02

    Pytorch 與 Visionfive2 兼容嗎?

    Pytorch 與 Visionfive2 兼容嗎? $ pip3 install torch torchvision torchaudio --index-url https
    發(fā)表于 02-06 08:28

    回調函數例子的應用

    1、一個四則運算的簡單回調函數例子: #include #include /**************************************** * 函數指針結構體
    發(fā)表于 12-11 07:23

    如何用函數指針調用函數

    給大家舉一個例子: int Func(int x);/*聲明一個函數*/ int (*p) (int x);/*定義一個函數指針*/ p = Func; /*將Func函數的首地
    發(fā)表于 12-11 06:26

    激活函數ReLU的理解與總結

    的深層神經網絡的激活函數是一個非?;钴S的研究領域。目前神經網絡最常用的激活函數-ReLU(rectified linear unit)是Na
    發(fā)表于 10-31 06:16

    CNN卷積神經網絡設計原理及MCU200T上仿真測試

    應用廣泛。因為經過MaxPool可以減小卷積核的尺寸,同時又可以保留相應特征,所以主要用來降維。 全連接層:全連接的過程中丟失位置信息,降低了學習過程中的參數敏感度。 RELU激活函數
    發(fā)表于 10-29 07:49

    NMSISI庫的使用

    :   神經網絡卷積函數   神經網絡激活函數   全連接層函數   神經網絡池化函數   Softmax
    發(fā)表于 10-29 07:07

    NMSIS神經網絡庫使用介紹

    :   神經網絡卷積函數   神經網絡激活函數   全連接層函數   神經網絡池化函數   Softmax
    發(fā)表于 10-29 06:08

    NMSIS庫的使用

    核可以提取不同的特征。激活操作是對卷積操作的輸出應用一個非線性函數,如ReLU等。激活函數可以增加網絡的非線性能力,使得網絡可以擬合更復雜的
    發(fā)表于 10-24 09:58

    Ubuntu20.04系統(tǒng)中訓練神經網絡模型的一些經驗

    本帖欲分享Ubuntu20.04系統(tǒng)中訓練神經網絡模型的一些經驗。我們采用jupyter notebook作為開發(fā)IDE,以TensorFlow2為訓練框架,目標是訓練一個手寫數字識別的神經網絡
    發(fā)表于 10-22 07:03

    如何使用I2C中的各個函數?

    加入I2C驅動時,會有i2c_core.c這樣的C文件,里面的各個函數怎么用有沒有例子,非常感謝
    發(fā)表于 09-12 06:24

    詳解hal_entry入口函數

    hal_entry函數開始執(zhí)行。我們直接打開“srchal_entry.c”文件,hal_entry函數里面編寫我們的代碼。
    的頭像 發(fā)表于 07-25 15:34 ?2246次閱讀

    FX3為什么無法Windows中使用Gstreamer?

    我正在開發(fā) FX3,我可以 Linux 和 Windows 中使用 y8 格式的 ffmpeg 流式傳輸相機, Linux 中使用 y8 格式的 Gstreamer,但我無法
    發(fā)表于 05-29 06:59
    黑龙江省| 缙云县| 汶上县| 上杭县| 平乐县| 鹤峰县| 比如县| 乌兰县| 邳州市| 玉龙| 赤水市| 江北区| 如皋市| 荣成市| 沁源县| 浮山县| 天津市| 姜堰市| 西宁市| 丹寨县| 于田县| 乐安县| 胶州市| 金湖县| 嵊州市| 罗源县| 舟山市| 定南县| 托克逊县| 靖西县| 阿鲁科尔沁旗| 友谊县| 连山| 长武县| 平罗县| 漾濞| 东乡族自治县| 北安市| 谢通门县| 舞钢市| 苍梧县|