日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

PyTorch logit函数

發布時間:2023/12/29 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PyTorch logit函数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.PyTorch vs TensorFlow

tensorflow是靜態圖,需要你把啥都準備好,然后它像個傻子一樣執行,tensorflow,目前業界更適合部署,畢竟是靜態圖,infer的時候速度快。

pytorch,它會在執行的時候,跟你嘮嗑,哪哪需要改不,哦,不改昂,那我執行了,pytorch更適合學術界,因為它更開發、調試更人性化。

(人工智能核心算法的底層還是由C/C++編寫,python實際上實現API調用功能)

2.logit函數

該函數可以將輸入范圍在[0,1]之間的數值p映射到[?∞,∞][?∞,∞]

如果p=0.5,則函數值為0,p<0.5,則函數值為負值;如果p>0.5,則函數值為正值。

PyTorch(tensorflow類似)的損失函數中,有一個(類)損失函數名字中帶了with_logits.。而這里的logits指的是,該損失函數已經內部自帶了計算logit的操作,無需在傳入給這個loss函數之前手動使用sigmoid/softmax將之前網絡的輸入映射到[0,1]之間。

不管是二分類,還是多分類問題,其實在計算損失函數的過程都經歷了三個步驟:

(1)激活函數。通過激活函數sigmoid或者是softmax將輸出值縮放到[0,1]之間;

(2)求對數。計算縮放之后的向量的對數值,即所謂的logy的值,求對數之后的值在[-infinite,0]之間;

(3)累加求和。根據損失函數的定義,將標簽和輸出值逐元素相乘再求和,最后再添加一個負號求相反數,得到一個正數損失。

不管什么樣的實現方式,都會經歷這三個步驟,不同的是,可能有的函數會將其中的一個或者是幾個步驟封裝在一起。

例如:

(1)BCELoss:需要先將最后一層經過sigmoid進行縮放然后再通過該函數;

(2)BCEWithLogitsLoss:BCEWithLogitsLoss就是把Sigmoid-BCELoss合成一步,不再需要在最后經過sigmoid進行縮放,直接對最后得到的logits進行處理。

注意:logits,指的是還沒有經過sigmoid和softmax縮放的結果

補充:

三維tensor(C,H,W),dim=0,1,2,-1(可理解為維度索引),其中2與-1等價,相同效果:

當dim=0時, 是對每一維度相同位置的數值進行softmax運算,和為1

當dim=1時, 是對某一維度的列進行softmax運算,和為1

當dim=2時, 是對某一維度的行進行softmax運算,和為1

同樣的,四維tensor(B,C,H,W)dim取值0,1,2,3,-1,三維tensor也可以看成是batchsize=1的四維tensor,只是dim的索引需要加1。

總結

以上是生活随笔為你收集整理的PyTorch logit函数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。