欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python深度學(xué)習(xí)pyTorch權(quán)重衰減與L2范數(shù)正則化解析

 更新時(shí)間:2021年09月30日 12:14:06   作者:算法菜鳥飛高高  
這篇文章主要介紹了Python深度學(xué)習(xí)中的pyTorch權(quán)重衰減與L2范數(shù)正則化的詳細(xì)解析,文中附含詳細(xì)示例代碼,有需要的朋友可以借鑒參考下

在這里插入圖片描述

下面進(jìn)行一個(gè)高維線性實(shí)驗(yàn)

假設(shè)我們的真實(shí)方程是:

在這里插入圖片描述

假設(shè)feature數(shù)200,訓(xùn)練樣本和測(cè)試樣本各20個(gè)

模擬數(shù)據(jù)集

num_train,num_test = 10,10
num_features = 200
true_w = torch.ones((num_features,1),dtype=torch.float32) * 0.01
true_b = torch.tensor(0.5)
samples = torch.normal(0,1,(num_train+num_test,num_features))
noise = torch.normal(0,0.01,(num_train+num_test,1))
labels = samples.matmul(true_w) + true_b + noise
train_samples, train_labels= samples[:num_train],labels[:num_train]
test_samples, test_labels = samples[num_train:],labels[num_train:]

定義帶正則項(xiàng)的loss function

def loss_function(predict,label,w,lambd):
    loss = (predict - label) ** 2
    loss = loss.mean() + lambd * (w**2).mean()
    return loss

畫圖的方法

def semilogy(x_val,y_val,x_label,y_label,x2_val,y2_val,legend):
    plt.figure(figsize=(3,3))
    plt.xlabel(x_label)
    plt.ylabel(y_label)
    plt.semilogy(x_val,y_val)
    if x2_val and y2_val:
        plt.semilogy(x2_val,y2_val)
        plt.legend(legend)
    plt.show()

擬合和畫圖

def fit_and_plot(train_samples,train_labels,test_samples,test_labels,num_epoch,lambd):
    w = torch.normal(0,1,(train_samples.shape[-1],1),requires_grad=True)
    b = torch.tensor(0.,requires_grad=True)
    optimizer = torch.optim.Adam([w,b],lr=0.05)
    train_loss = []
    test_loss = []
    for epoch in range(num_epoch):
        predict = train_samples.matmul(w) + b
        epoch_train_loss = loss_function(predict,train_labels,w,lambd)
        optimizer.zero_grad()
        epoch_train_loss.backward()
        optimizer.step()
        test_predict = test_sapmles.matmul(w) + b
        epoch_test_loss = loss_function(test_predict,test_labels,w,lambd)
        train_loss.append(epoch_train_loss.item())
        test_loss.append(epoch_test_loss.item())
    semilogy(range(1,num_epoch+1),train_loss,'epoch','loss',range(1,num_epoch+1),test_loss,['train','test'])

在這里插入圖片描述
可以發(fā)現(xiàn)加了正則項(xiàng)的模型,在測(cè)試集上的loss確實(shí)下降了

以上就是Python深度學(xué)習(xí)pyTorch權(quán)重衰減與L2范數(shù)正則化解析的詳細(xì)內(nèi)容,更多關(guān)于Python pyTorch權(quán)重與L2范數(shù)正則化的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • python中的下劃線多種用法總結(jié)

    python中的下劃線多種用法總結(jié)

    在 Python 中,下劃線(underscore)有多種用法,它在不同的上下文中可以扮演不同的角色,本文將介紹python中的下劃線用法總結(jié),感興趣的朋友一起看看吧
    2024-05-05
  • Python 列表(List)操作方法詳解

    Python 列表(List)操作方法詳解

    這篇文章主要介紹了Python中列表(List)的詳解操作方法,包含創(chuàng)建、訪問、更新、刪除、其它操作等,需要的朋友可以參考下
    2014-03-03
  • Python實(shí)現(xiàn)將羅馬數(shù)字轉(zhuǎn)換成普通阿拉伯?dāng)?shù)字的方法

    Python實(shí)現(xiàn)將羅馬數(shù)字轉(zhuǎn)換成普通阿拉伯?dāng)?shù)字的方法

    這篇文章主要介紹了Python實(shí)現(xiàn)將羅馬數(shù)字轉(zhuǎn)換成普通阿拉伯?dāng)?shù)字的方法,簡(jiǎn)單分析了羅馬數(shù)字的構(gòu)成并結(jié)合實(shí)例形式給出了Python轉(zhuǎn)換羅馬數(shù)字為阿拉伯?dāng)?shù)字的實(shí)現(xiàn)方法,需要的朋友可以參考下
    2017-04-04
  • python-xpath獲取html文檔的部分內(nèi)容

    python-xpath獲取html文檔的部分內(nèi)容

    這篇文章主要介紹了python-xpath獲取html文檔的部分內(nèi)容,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • Python?matplotlib的spines模塊實(shí)例詳解

    Python?matplotlib的spines模塊實(shí)例詳解

    作為程序員,經(jīng)常需要進(jìn)行繪圖,下面這篇文章主要給大家介紹了關(guān)于Python?matplotlib的spines模塊的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • Python+random模塊實(shí)現(xiàn)隨機(jī)抽樣

    Python+random模塊實(shí)現(xiàn)隨機(jī)抽樣

    python的random庫(kù),提供了很多隨機(jī)抽樣方法。本文將通過幾個(gè)示例為大家詳細(xì)講講random模塊實(shí)現(xiàn)隨機(jī)抽樣的方法,需要的可以參考一下
    2022-09-09
  • pytorch模型的保存和加載、checkpoint操作

    pytorch模型的保存和加載、checkpoint操作

    這篇文章主要介紹了pytorch模型的保存和加載、checkpoint操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Python?命令行?prompt_toolkit?庫(kù)詳解

    Python?命令行?prompt_toolkit?庫(kù)詳解

    prompt_toolkit 是一個(gè)用于構(gòu)建強(qiáng)大交互式命令行的 Python 工具庫(kù)。接下來通過本文給大家介紹Python?命令行?prompt_toolkit?庫(kù)的相關(guān)知識(shí),感興趣的朋友一起看看吧
    2022-01-01
  • python3之模塊psutil系統(tǒng)性能信息使用

    python3之模塊psutil系統(tǒng)性能信息使用

    psutil是個(gè)跨平臺(tái)庫(kù),能夠輕松實(shí)現(xiàn)獲取系統(tǒng)運(yùn)行的進(jìn)程和系統(tǒng)利用率,這篇文章主要介紹了python3之模塊psutil系統(tǒng)性能信息使用,感興趣的小伙伴們可以參考一下
    2018-05-05
  • Python使用Bokeh庫(kù)實(shí)現(xiàn)炫目的交互可視化

    Python使用Bokeh庫(kù)實(shí)現(xiàn)炫目的交互可視化

    Bokeh是一個(gè)用于創(chuàng)建交互式可視化圖形的強(qiáng)大Python庫(kù),它不僅易于使用,而且功能強(qiáng)大,適用于各種數(shù)據(jù)可視化需求,本文將介紹Bokeh庫(kù)的繪圖可視化基礎(chǔ)入門,需要的可以了解下
    2024-03-03

最新評(píng)論