亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Pytorch 如何實(shí)現(xiàn)常用正則化

 更新時間:2021年05月27日 10:35:32   作者:winycg  
這篇文章主要介紹了Pytorch 實(shí)現(xiàn)常用正則化的操作,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

Stochastic Depth

論文:Deep Networks with Stochastic Depth

本文的正則化針對于ResNet中的殘差結(jié)構(gòu),類似于dropout的原理,訓(xùn)練時對模塊進(jìn)行隨機(jī)的刪除,從而提升模型的泛化能力。

在這里插入圖片描述

對于上述的ResNet網(wǎng)絡(luò),模塊越在后面被drop掉的概率越大。

作者直覺上認(rèn)為前期提取的低階特征會被用于后面的層。

第一個模塊保留的概率為1,之后保留概率隨著深度線性遞減。

對一個模塊的drop函數(shù)可以采用如下的方式實(shí)現(xiàn):

def drop_connect(inputs, p, training):
    """ Drop connect. """
    if not training: return inputs # 測試階段
    batch_size = inputs.shape[0]
    keep_prob = 1 - p
    random_tensor = keep_prob
    random_tensor += torch.rand([batch_size, 1, 1, 1], dtype=inputs.dtype, device=inputs.device)
    # 以樣本為單位生成模塊是否被drop的01向量
    binary_tensor = torch.floor(random_tensor) 
    # 因?yàn)樵酵笤饺菀妆籨rop,所以沒有被drop的值就要通過除keep_prob來放大
    output = inputs / keep_prob * binary_tensor
    return output

在Pytorch建立的Module類中,具有forward函數(shù)

可以在forward函數(shù)中進(jìn)行drop:

def forward(self, x):
 x=...
 if stride == 1 and in_planes == out_planes:
        if drop_connect_rate:
            x = drop_connect(x, p=drop_connect_rate, training=self.training)
        x = x + inputs  # skip connection
    return x

主函數(shù):

for idx, block in enumerate(self._blocks):
    drop_connect_rate = self._global_params.drop_connect_rate
    if drop_connect_rate:
        drop_connect_rate *= float(idx) / len(self._blocks)
    x = block(x, drop_connect_rate=drop_connect_rate)

補(bǔ)充:pytorch中的L2正則化實(shí)現(xiàn)方法

搭建神經(jīng)網(wǎng)絡(luò)時需要使用L2正則化等操作來防止過擬合,而pytorch不像TensorFlow能在任意卷積函數(shù)中添加L2正則化的超參,那怎么在pytorch中實(shí)現(xiàn)L2正則化呢?

方法如下:超級簡單!

optimizer = torch.optim.Adam(net.parameters(), lr=0.001, weight_decay=5.0)

torch.optim.Adam()參數(shù)中的 weight_decay=5.0 即為L2正則化(只是pytorch換了名字),其數(shù)值即為L2正則化的懲罰系數(shù),一般設(shè)置為1、5、10(根據(jù)需要設(shè)置,默認(rèn)為0,不使用L2正則化)。

注:

pytorch中的優(yōu)化函數(shù)L2正則化默認(rèn)對所有網(wǎng)絡(luò)參數(shù)進(jìn)行懲罰,且只能實(shí)現(xiàn)L2正則化,如需只懲罰指定網(wǎng)絡(luò)層參數(shù)或采用L1正則化,只能自己定義。。。

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • NumPy實(shí)現(xiàn)結(jié)構(gòu)化數(shù)組的示例代碼

    NumPy實(shí)現(xiàn)結(jié)構(gòu)化數(shù)組的示例代碼

    結(jié)構(gòu)化數(shù)組是 NumPy 中用于處理異質(zhì)數(shù)據(jù)的重要工具,通過定義復(fù)雜的數(shù)據(jù)類型,我們可以創(chuàng)建具有不同字段的數(shù)組,本文主要介紹了NumPy實(shí)現(xiàn)結(jié)構(gòu)化數(shù)組的示例代碼,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-01-01
  • Pydantic中BaseConfig的具體使用

    Pydantic中BaseConfig的具體使用

    本文主要介紹了Pydantic中BaseConfig的具體使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-06-06
  • 詳解Python中的各種函數(shù)的使用

    詳解Python中的各種函數(shù)的使用

    這篇文章主要介紹了詳解Python中的各種函數(shù)的使用,是Python入門中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-05-05
  • Python動態(tài)導(dǎo)入模塊:__import__、importlib、動態(tài)導(dǎo)入的使用場景實(shí)例分析

    Python動態(tài)導(dǎo)入模塊:__import__、importlib、動態(tài)導(dǎo)入的使用場景實(shí)例分析

    這篇文章主要介紹了Python動態(tài)導(dǎo)入模塊:__import__、importlib、動態(tài)導(dǎo)入的使用場景,結(jié)合實(shí)例形式分析了Python動態(tài)導(dǎo)入模塊__import__、importlib基本概念、原理及動態(tài)導(dǎo)入的具體應(yīng)用操作技巧,需要的朋友可以參考下
    2020-03-03
  • Python基于Tkinter實(shí)現(xiàn)的垃圾分類答題軟件代碼

    Python基于Tkinter實(shí)現(xiàn)的垃圾分類答題軟件代碼

    這篇文章主要介紹了基于Tkinter實(shí)現(xiàn)的垃圾分類答題軟件代碼,圖形用戶界面是一種人與計(jì)算機(jī)通信的界面顯示格式,允許用戶使用鼠標(biāo)等輸入設(shè)備操縱屏幕上的圖標(biāo)或菜單選項(xiàng),需要的朋友可以參考下
    2023-04-04
  • python 使用openpyxl讀取excel數(shù)據(jù)

    python 使用openpyxl讀取excel數(shù)據(jù)

    這篇文章主要介紹了python 使用openpyxl讀取excel數(shù)據(jù)的方法,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-02-02
  • python讀取excel數(shù)據(jù)并且畫圖的實(shí)現(xiàn)示例

    python讀取excel數(shù)據(jù)并且畫圖的實(shí)現(xiàn)示例

    這篇文章主要介紹了python讀取excel數(shù)據(jù)并且畫圖的實(shí)現(xiàn)示例,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2021-02-02
  • 在pycharm中debug 實(shí)時查看數(shù)據(jù)操作(交互式)

    在pycharm中debug 實(shí)時查看數(shù)據(jù)操作(交互式)

    這篇文章主要介紹了在pycharm中debug 實(shí)時查看數(shù)據(jù)操作(交互式),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • Django與數(shù)據(jù)庫交互的實(shí)現(xiàn)

    Django與數(shù)據(jù)庫交互的實(shí)現(xiàn)

    最近在學(xué)習(xí)Django,本文主要介紹了Django與數(shù)據(jù)庫交互的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • python實(shí)現(xiàn)布爾型盲注的示例代碼

    python實(shí)現(xiàn)布爾型盲注的示例代碼

    這篇文章主要介紹了python實(shí)現(xiàn)sql布爾盲注的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04

最新評論