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

Pytorch基本使用—參數(shù)初始化

這篇具有很好參考價(jià)值的文章主要介紹了Pytorch基本使用—參數(shù)初始化。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

深度學(xué)習(xí)模型參數(shù)初始化是指在訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)時(shí),對(duì)網(wǎng)絡(luò)的權(quán)重和偏置進(jìn)行初始化的過程。合適的參數(shù)初始化可以加速模型的收斂,并提高模型的性能。

? 1 基本介紹

在深度學(xué)習(xí)中,常用的參數(shù)初始化方法有以下幾種:

  1. 零初始化(Zero Initialization):將所有權(quán)重和偏置初始化為0。然而,這種方法會(huì)導(dǎo)致所有神經(jīng)元具有相同的輸出,無法破壞對(duì)稱性,因此不常用。
  2. 隨機(jī)初始化(Random Initialization):將權(quán)重和偏置隨機(jī)初始化為較小的隨機(jī)值。這種方法可以打破對(duì)稱性,但并不能保證初始化的權(quán)重和偏置能夠適應(yīng)網(wǎng)絡(luò)的輸入和輸出分布。
  3. Xavier初始化(Xavier Initialization):根據(jù)每一層的輸入維度和輸出維度的大小來進(jìn)行初始化。Xavier初始化方法根據(jù)激活函數(shù)的導(dǎo)數(shù)和輸入輸出的維度來調(diào)整初始化的范圍,使得每一層的激活值保持在一個(gè)合適的范圍內(nèi)。
  4. He初始化(He Initialization):類似于Xavier初始化,但在計(jì)算權(quán)重的標(biāo)準(zhǔn)差時(shí),將輸入維度除以2。這是由于ReLU等非線性激活函數(shù)的性質(zhì)導(dǎo)致的。
  5. 預(yù)訓(xùn)練初始化(Pretraining Initialization):在某些情況下,可以使用預(yù)訓(xùn)練的模型參數(shù)來初始化新的模型。例如,利用在大規(guī)模數(shù)據(jù)集上預(yù)訓(xùn)練的模型參數(shù)來初始化新任務(wù)的模型,可以加快模型的收斂速度。

需要注意的是,不同的參數(shù)初始化方法適用于不同的網(wǎng)絡(luò)架構(gòu)和激活函數(shù)。在實(shí)際應(yīng)用中,需要根據(jù)具體情況選擇適當(dāng)?shù)膮?shù)初始化方法。此外,還可以通過調(diào)整學(xué)習(xí)率和正則化等技巧來進(jìn)一步優(yōu)化訓(xùn)練過程。

? 2 零初始化(不常用)

?? 2.1 理論

這里主要分析一下神經(jīng)網(wǎng)絡(luò)為什么不能將參數(shù)全部初始化為0
假設(shè)我們有下面的網(wǎng)絡(luò)(為了簡單,全部以線性函數(shù)計(jì)算):
Pytorch基本使用—參數(shù)初始化,Pytorch使用,pytorch,人工智能,python,深度學(xué)習(xí),機(jī)器學(xué)習(xí)
第一層計(jì)算為:
Pytorch基本使用—參數(shù)初始化,Pytorch使用,pytorch,人工智能,python,深度學(xué)習(xí),機(jī)器學(xué)習(xí)
第二層計(jì)算為:
Pytorch基本使用—參數(shù)初始化,Pytorch使用,pytorch,人工智能,python,深度學(xué)習(xí),機(jī)器學(xué)習(xí)
以參數(shù)W11和W12的反向傳播為例,梯度為:
Pytorch基本使用—參數(shù)初始化,Pytorch使用,pytorch,人工智能,python,深度學(xué)習(xí),機(jī)器學(xué)習(xí)
因?yàn)槎际?,則梯度為0,則參數(shù)更新停止。

? 3 Xavier初始化

第二節(jié)我們簡單總結(jié)了為什么神經(jīng)網(wǎng)絡(luò)參數(shù)不能輸出化為0,接下來我們討論Xavier初始化。

?? 3.1 介紹

在神經(jīng)網(wǎng)絡(luò)中,每個(gè)神經(jīng)元的輸入是由上一層的神經(jīng)元輸出和權(quán)重參數(shù)決定的。如果權(quán)重參數(shù)初始化過大,會(huì)導(dǎo)致輸入值變得很大,從而使得激活函數(shù)的導(dǎo)數(shù)趨近于0,造成梯度消失問題。相反,如果權(quán)重參數(shù)初始化過小,會(huì)導(dǎo)致輸入值變得很小,從而使得激活函數(shù)的導(dǎo)數(shù)趨近于1,造成梯度爆炸問題。

Xavier初始化通過根據(jù)網(wǎng)絡(luò)層的輸入和輸出維度來合理地初始化權(quán)重參數(shù),使得權(quán)重參數(shù)的方差保持在一個(gè)相對(duì)穩(wěn)定的范圍內(nèi)。這樣可以避免梯度消失和梯度爆炸問題,有助于提高網(wǎng)絡(luò)的訓(xùn)練效果。

?? 3.2 推導(dǎo)

這里我們以下列網(wǎng)絡(luò)為例:
Pytorch基本使用—參數(shù)初始化,Pytorch使用,pytorch,人工智能,python,深度學(xué)習(xí),機(jī)器學(xué)習(xí)

首先看前向傳播
Pytorch基本使用—參數(shù)初始化,Pytorch使用,pytorch,人工智能,python,深度學(xué)習(xí),機(jī)器學(xué)習(xí)
方差為(這里應(yīng)用概率論相關(guān)計(jì)算公式,需要注意的是這里Xi經(jīng)過歸一化,E(Xi)=0)
Pytorch基本使用—參數(shù)初始化,Pytorch使用,pytorch,人工智能,python,深度學(xué)習(xí),機(jī)器學(xué)習(xí)
如果Xi和Wi獨(dú)立同分布,那么D(a1)的最終公式為
Pytorch基本使用—參數(shù)初始化,Pytorch使用,pytorch,人工智能,python,深度學(xué)習(xí),機(jī)器學(xué)習(xí)
這里Pytorch基本使用—參數(shù)初始化,Pytorch使用,pytorch,人工智能,python,深度學(xué)習(xí),機(jī)器學(xué)習(xí)代表著輸入維度
而我們的目標(biāo)是Pytorch基本使用—參數(shù)初始化,Pytorch使用,pytorch,人工智能,python,深度學(xué)習(xí),機(jī)器學(xué)習(xí),因此Pytorch基本使用—參數(shù)初始化,Pytorch使用,pytorch,人工智能,python,深度學(xué)習(xí),機(jī)器學(xué)習(xí)


與上述計(jì)算方式一樣,反向傳播最終結(jié)果是Pytorch基本使用—參數(shù)初始化,Pytorch使用,pytorch,人工智能,python,深度學(xué)習(xí),機(jī)器學(xué)習(xí)。只是這里,Pytorch基本使用—參數(shù)初始化,Pytorch使用,pytorch,人工智能,python,深度學(xué)習(xí),機(jī)器學(xué)習(xí)是輸出的維度大小。


但是Pytorch基本使用—參數(shù)初始化,Pytorch使用,pytorch,人工智能,python,深度學(xué)習(xí),機(jī)器學(xué)習(xí)Pytorch基本使用—參數(shù)初始化,Pytorch使用,pytorch,人工智能,python,深度學(xué)習(xí),機(jī)器學(xué)習(xí)一般情況下是不同的,因此,這里采取一種折中的方式
Pytorch基本使用—參數(shù)初始化,Pytorch使用,pytorch,人工智能,python,深度學(xué)習(xí),機(jī)器學(xué)習(xí),我們讓Pytorch基本使用—參數(shù)初始化,Pytorch使用,pytorch,人工智能,python,深度學(xué)習(xí),機(jī)器學(xué)習(xí)在區(qū)間[a, b]上均勻采樣(均勻分布)
結(jié)合均勻分布方差公式Pytorch基本使用—參數(shù)初始化,Pytorch使用,pytorch,人工智能,python,深度學(xué)習(xí),機(jī)器學(xué)習(xí),解出Xavier初始化采樣范圍為Pytorch基本使用—參數(shù)初始化,Pytorch使用,pytorch,人工智能,python,深度學(xué)習(xí),機(jī)器學(xué)習(xí)

?? 3.3 構(gòu)造

torch.nn.init.xavier_uniform_(tensor, a=0, b=1)
  1. tensor:需要填充的張量
  2. a:均勻分布的下界
  3. b:均勻分布的上界

?? 3.4 例子

w = torch.empty(3, 5)
nn.init.uniform_(w)

result:文章來源地址http://www.zghlxwxcb.cn/news/detail-573037.html

tensor([[0.2116, 0.3085, 0.5448, 0.6113, 0.7697],
        [0.8300, 0.2938, 0.4597, 0.4698, 0.0624],
        [0.5034, 0.1166, 0.3133, 0.3615, 0.3757]])

到了這里,關(guān)于Pytorch基本使用—參數(shù)初始化的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • RestHighLevelClient初始化http參數(shù)的含義

    high-level-rest-client 初始化 一般初始化時(shí)需要設(shè)置驗(yàn)證信息、http相關(guān)參數(shù); Http相關(guān)參數(shù)介紹 keepalive keepalive用以維護(hù)長連接,長連接可以復(fù)用,但一定情況下需要中斷長連接,如長連接長時(shí)間沒有被使用的場景,需要中斷長連接來節(jié)省資源。如上述ES客戶端初始化案例中,則是

    2024年02月12日
    瀏覽(18)
  • Servlet 初始化參數(shù)(web.xml和@WebServlet)
  • Unity WebGL通過URL的形式接收參數(shù)執(zhí)行初始化

    Unity WebGL通過URL的形式接收參數(shù)執(zhí)行初始化

    參考博客: http://t.csdnimg.cn/QnfhK 需要在外面的網(wǎng)頁指定WebGL的打開初始化邏輯。 1.配置jslib,用文本文件創(chuàng)建即可,\\\"__Internal.jslib\\\"。 2.加入一段代碼: 3.場景掛一個(gè)腳本,引用這個(gè)代碼。 4.url中末尾用?輸入需要傳輸?shù)膬?nèi)容,能夠傳遞。

    2024年01月23日
    瀏覽(26)
  • 線性表的基本操作(初始化、創(chuàng)建、增、刪、查)

    目錄 順序表 順序表的定義和初始化 順序表的基本操作 1.求表長 2.判空操作 3.創(chuàng)建順序表 4.輸出操作 5.插入操作 6.刪除操作 7.按位查找操作 8.按值查找操作 單鏈表 單鏈表的定義 單鏈表的初始化 求表長 判空操作 ?尾插法建立單鏈表 頭插法建立單鏈表 輸出操作 前插操作 后插

    2024年02月08日
    瀏覽(20)
  • 【機(jī)器學(xué)習(xí)300問】78、都有哪些神經(jīng)網(wǎng)絡(luò)的初始化參數(shù)方法?

    ????????在訓(xùn)練神經(jīng)網(wǎng)絡(luò)時(shí),權(quán)重初始化是確保良好收斂的關(guān)鍵步驟之一。不合適的初始化方法可能會(huì)導(dǎo)致梯度消失或爆炸,特別是在深層網(wǎng)絡(luò)中。那么都有哪些神經(jīng)網(wǎng)絡(luò)的初始化參數(shù)方法呢?選擇它這些方法的原則是什么? ? ? ? ? 關(guān)于隨機(jī)初始化神經(jīng)網(wǎng)絡(luò)參數(shù)的方法

    2024年04月23日
    瀏覽(46)
  • 順序表的基本操作(初始化,增,刪,查,改等等)

    順序表的基本操作(初始化,增,刪,查,改等等)

    1.線性表 線性表(linear list)是n個(gè)具有相同特性的數(shù)據(jù)元素的有限序列。 線性表是一種在實(shí)際中廣泛使 用的數(shù)據(jù)結(jié)構(gòu), 常見的線性表:順序表、鏈表、棧、隊(duì)列、字符串... 線性表在邏輯上是線性結(jié)構(gòu),也就說是連續(xù)的一條直線。但是在物理結(jié)構(gòu)上并不一定是連續(xù)的, 線性

    2024年02月03日
    瀏覽(23)
  • 多進(jìn)程運(yùn)行含有任意參數(shù)的函數(shù)、為什么multiprosessing會(huì)進(jìn)行多次初始化

    目錄 多進(jìn)程運(yùn)行含有任意個(gè)參數(shù)的函數(shù),以map_async為例 為什么multiprocessing 的了進(jìn)程會(huì)多次初始化? ????????使用偏函數(shù):偏函數(shù)有點(diǎn)像數(shù)學(xué)中的偏導(dǎo)數(shù),可以讓我們只關(guān)注其中的某一個(gè)變量而不考慮其他變量的影響。 如以下代碼中,我們要將set_seq、tokenizer和model作為變量

    2024年02月03日
    瀏覽(17)
  • C語言單鏈表實(shí)現(xiàn)初始化、創(chuàng)建、增、刪、查等基本操作(詳細(xì))

    提示:文章參考王道的課程,相當(dāng)于課程筆記 目錄 一、單鏈表的定義及初始化 1、定義? ?2、初始化 ?1)不帶頭結(jié)點(diǎn)的單鏈表 ?2)帶頭節(jié)的單鏈表 ?二、單鏈表插入和刪除 1)插入 1、按位序插入(帶頭結(jié)點(diǎn)) 2、按位插入(不帶頭結(jié)點(diǎn))? 3、指定結(jié)點(diǎn)的后插操作 ?4、指定結(jié)點(diǎn)

    2023年04月08日
    瀏覽(34)
  • vue3+js+viter+element UI+Axios項(xiàng)目初始化基本流程

    vue3+js+viter+element UI+Axios項(xiàng)目初始化基本流程

    1 創(chuàng)建vue3項(xiàng)目 2 創(chuàng)建git代碼管理倉庫 2.1 創(chuàng)建本地管理倉庫 2.2 創(chuàng)建遠(yuǎn)程倉庫 3 初始化項(xiàng)目設(shè)置 3.1 安裝項(xiàng)目所需要的依賴 3.2 完成別名聯(lián)想設(shè)置 3.2.1 什么叫別名聯(lián)想呢?(如果了解的話可以跳過這個(gè)標(biāo)題) 3.2.2 設(shè)置別名聯(lián)想 3.2.2.1 打開jsconfig.json文件 3.2.2.2 打開vite.config.js文件

    2024年03月27日
    瀏覽(87)
  • C語言 隊(duì)列(循環(huán)隊(duì)列和鏈隊(duì)初始化進(jìn)出隊(duì)等基本操作)

    C語言 隊(duì)列(循環(huán)隊(duì)列和鏈隊(duì)初始化進(jìn)出隊(duì)等基本操作)

    目錄 一、隊(duì)列的定義 ?二、循環(huán)隊(duì)列 1、?循環(huán)隊(duì)列的儲(chǔ)存結(jié)構(gòu) 2、初始化 3、輸出隊(duì)列元素 4、入隊(duì) 5、出隊(duì) 6、取隊(duì)頭元素 7、求隊(duì)列長度 8、源代碼 三、鏈?zhǔn)疥?duì)列 1、隊(duì)列的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)表示 2、初始化 3.輸出隊(duì)列元素 4.入隊(duì) 5.出隊(duì) 6.取隊(duì)頭元素 7. 源代碼 總結(jié) 隊(duì)列 (Queue)

    2024年02月07日
    瀏覽(20)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包