最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PyTorch中常見損失函數(shù)的使用詳解

 更新時(shí)間:2023年06月18日 11:34:38   作者:夏天是冰紅茶  
損失函數(shù),又叫目標(biāo)函數(shù),是指計(jì)算機(jī)標(biāo)簽值和預(yù)測(cè)值直接差異的函數(shù),本文為大家整理了PyTorch中常見損失函數(shù)的簡(jiǎn)單解釋和使用,希望對(duì)大家有所幫助

損失函數(shù)

損失函數(shù),又叫目標(biāo)函數(shù)。在編譯神經(jīng)網(wǎng)絡(luò)模型必須的兩個(gè)參數(shù)之一。另一個(gè)必不可少的就是優(yōu)化器,我將在后面詳解到。

重點(diǎn)

損失函數(shù)是指計(jì)算機(jī)標(biāo)簽值和預(yù)測(cè)值直接差異的函數(shù)。

這里我們會(huì)結(jié)束幾種常見的損失函數(shù)的計(jì)算方法,pytorch中也是以及定義了很多類型的預(yù)定義函數(shù),具體的公式不需要去深究(學(xué)了也不一定remember),這里暫時(shí)能做就是了解。

我們先來定義兩個(gè)二維的數(shù)組,然后用不同的損失函數(shù)計(jì)算其損失值。

import torch
from torch.autograd import Variable
import torch.nn as nn
sample=Variable(torch.ones(2,2))
a=torch.Tensor(2,2)
a[0,0]=0
a[0,1]=1
a[1,0]=2
a[1,1]=3
target=Variable(a)
print(sample,target)

這里:

sample的值為tensor([[1., 1.],[1., 1.]])

target的值為tensor([[0., 1.],[2., 3.]])

nn.L1Loss

L1Loss計(jì)算方法很簡(jiǎn)單,取預(yù)測(cè)值和真實(shí)值的絕對(duì)誤差的平均數(shù)。

loss=FunLoss(sample,target)['L1Loss']
print(loss)

在控制臺(tái)中打印出來是

tensor(1.)

它的計(jì)算過程是這樣的:(∣0−1∣+∣1−1∣+∣2−1∣+∣3−1∣)/4=1,先計(jì)算的是絕對(duì)值求和,然后再平均。

nn.SmoothL1Loss

SmoothL1Loss的誤差在(-1,1)上是平方損失,其他情況是L1損失。

loss=FunLoss(sample,target)['SmoothL1Loss']
print(loss)

在控制臺(tái)中打印出來是

tensor(0.6250)

nn.MSELoss

平方損失函數(shù)。其計(jì)算公式是預(yù)測(cè)值和真實(shí)值之間的平方和的平均數(shù)。

loss=FunLoss(sample,target)['MSELoss']
print(loss)

在控制臺(tái)中打印出來是

tensor(1.5000)

nn.CrossEntropyLoss

交叉熵?fù)p失公式

此公式常在圖像分類神經(jīng)網(wǎng)絡(luò)模型中會(huì)常常用到。

loss=FunLoss(sample,target)['CrossEntropyLoss']
print(loss)

在控制臺(tái)中打印出來是

tensor(2.0794)

nn.NLLLoss

負(fù)對(duì)數(shù)似然損失函數(shù)

需要注意的是,這里的xlabel和上面的交叉熵?fù)p失里的是不一樣的,這里是經(jīng)過log運(yùn)算后的數(shù)值。這個(gè)損失函數(shù)一般用在圖像識(shí)別的模型上。

loss=FunLoss(sample,target)['NLLLoss']
print(loss)

這里,控制臺(tái)報(bào)錯(cuò),需要0D或1D目標(biāo)張量,不支持多目標(biāo)??赡苄枰渌囊恍l件,這里我們?nèi)绻龅搅嗽僬f。

損失函數(shù)模塊化設(shè)計(jì)

class FunLoss():
    def __init__(self, sample, target):
        self.sample = sample
        self.target = target
        self.loss = {
            'L1Loss': nn.L1Loss(),
            'SmoothL1Loss': nn.SmoothL1Loss(),
            'MSELoss': nn.MSELoss(),
            'CrossEntropyLoss': nn.CrossEntropyLoss(),
            'NLLLoss': nn.NLLLoss()
        }
    def __getitem__(self, loss_type):
        if loss_type in self.loss:
            loss_func = self.loss[loss_type]
            return loss_func(self.sample, self.target)
        else:
            raise KeyError(f"Invalid loss type '{loss_type}'")
if __name__=="__main__":
    loss=FunLoss(sample,target)['NLLLoss']
    print(loss)

總結(jié)

這篇博客適合那些希望了解在PyTorch中常見損失函數(shù)的讀者。通過FunLoss我們自己也能簡(jiǎn)單的去調(diào)用。

到此這篇關(guān)于PyTorch中常見損失函數(shù)的使用詳解的文章就介紹到這了,更多相關(guān)PyTorch損失函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python 列表(List) 的三種遍歷方法實(shí)例 詳解

    Python 列表(List) 的三種遍歷方法實(shí)例 詳解

    這篇文章主要介紹了Python 列表(List) 的三種遍歷方法實(shí)例 詳解的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • python實(shí)現(xiàn)列表推導(dǎo)式與生成器

    python實(shí)現(xiàn)列表推導(dǎo)式與生成器

    列表推導(dǎo)式和生成器都是Python中處理集合的強(qiáng)大工具,列表推導(dǎo)式用于快速生成列表,而生成器表達(dá)式則提供了一種節(jié)約內(nèi)存的方式來處理大型數(shù)據(jù)集,下面就來介紹一下python實(shí)現(xiàn)列表推導(dǎo)式與生成器,感興趣的可以了解一下
    2024-09-09
  • Python編程之微信推送模板消息功能示例

    Python編程之微信推送模板消息功能示例

    這篇文章主要介紹了Python編程之微信推送模板消息功能,結(jié)合實(shí)例形式分析了Python微信推送消息接口的調(diào)用相關(guān)操作技巧,需要的朋友可以參考下
    2017-08-08
  • 完美解決TensorFlow和Keras大數(shù)據(jù)量?jī)?nèi)存溢出的問題

    完美解決TensorFlow和Keras大數(shù)據(jù)量?jī)?nèi)存溢出的問題

    這篇文章主要介紹了完美解決TensorFlow和Keras大數(shù)據(jù)量?jī)?nèi)存溢出的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • ?Python?匿名函數(shù)lambda?詳情

    ?Python?匿名函數(shù)lambda?詳情

    這篇文章主要介紹了?Python?匿名函數(shù)lambda,??lambda?????函數(shù)返回函數(shù)本身而不是將其賦值給一個(gè)變量名。所以它也被稱為匿名函數(shù),下文更多相關(guān)內(nèi)容需要的小伙伴可以參考一下
    2022-03-03
  • python 爬取小說并下載的示例

    python 爬取小說并下載的示例

    這篇文章主要介紹了python 爬取小說并下載的示例,幫助大家更好的理解和學(xué)習(xí)python爬蟲,感興趣的朋友可以了解下
    2020-12-12
  • 詳解Python中的三元運(yùn)算

    詳解Python中的三元運(yùn)算

    本文詳細(xì)介紹了Python中的三元運(yùn)算符的使用方法和技巧,三元運(yùn)算也稱三目運(yùn)算,在Python中,三元運(yùn)算也稱為條件表達(dá)式,感興趣的小伙伴可以參考閱讀
    2023-04-04
  • 對(duì)numpy中二進(jìn)制格式的數(shù)據(jù)存儲(chǔ)與讀取方法詳解

    對(duì)numpy中二進(jìn)制格式的數(shù)據(jù)存儲(chǔ)與讀取方法詳解

    今天小編就為大家分享一篇對(duì)numpy中二進(jìn)制格式的數(shù)據(jù)存儲(chǔ)與讀取方法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • TensorFlow 滑動(dòng)平均的示例代碼

    TensorFlow 滑動(dòng)平均的示例代碼

    這篇文章主要介紹了TensorFlow 滑動(dòng)平均的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-06-06
  • 關(guān)于Python?Tkinter?復(fù)選框?->Checkbutton

    關(guān)于Python?Tkinter?復(fù)選框?->Checkbutton

    這篇文章主要介紹了關(guān)于Python?Tkinter復(fù)選框Checkbutton,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09

最新評(píng)論

华宁县| 广灵县| 阿克陶县| 郁南县| 台中市| 衡东县| 长子县| 沁阳市| 江城| 龙门县| 陵川县| 广州市| 谢通门县| 柞水县| 康保县| 庐江县| 广元市| 措勤县| 元氏县| 如皋市| 延吉市| 安福县| 万全县| 涟水县| 东城区| 镇远县| 宜阳县| 基隆市| 宜春市| 湘西| 海淀区| 汝南县| 镇康县| 霍邱县| 雷山县| 南召县| 延边| 观塘区| 晋州市| 皮山县| 连南|