簡單介紹pytorch中log_softmax的實現
導讀 | log_softmax 是計算損失的時候常用的一個函式,那麼這個函式的內部到底是怎麼做到的呢?這裡詳細的解釋一下。 |
寫程式碼前,回憶一下log_softmax的公式 − l o g e x p ( p j ) ∑ i e x p ( p i ) -log\frac{exp(p_j)}{\sum_{i}exp(p_i)} −log∑iexp(pi)exp(pj)
程式碼
'''自己實現log_softmax 函式 (1)使用torch.exp()函式計算各個logit的e次冪 (2)使用torch.sum()函式計算求和 (3)使用torch.log對比例求對數 可以發現,二者最終的結果是相同的 ''' import torch as t import torch.nn.functional as F logit = t.tensor([0.1,0.1,0.1,0.7]) a = t.exp(logit) print("a=",a) b = t.sum(a,dim=0,keepdim=True) print("b=",b) c=t.log(a/b) print(c) print(F.log_softmax(logit))
執行結果:
二者是相同的。所以以後想用的話,可以直接使用log_softmax()函式即可,就不用再分開搞了。
原文來自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2851360/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 簡單介紹PyTorch中in-place operation的含義PyTorch
- 簡單介紹Pytorch實現WGAN用於動漫頭像生成PyTorch
- 簡單介紹NMS的實現方法
- 簡單介紹python中的單向連結串列實現Python
- 簡單介紹numpy實現RNN原理實現RNN
- RPC模式的介紹以及簡單的實現RPC模式
- 簡單介紹shell中的curl網路請求的實現
- 簡單介紹VBS 批次Ping的專案實現
- 簡單介紹Go 字串比較的實現示例Go字串
- 簡單介紹Rust中的workspaceRust
- 簡單介紹SpringMVC RESTFul實現列表功能SpringMVCREST
- mitmproxy中libmproxy簡單介紹MITIBM
- 簡單介紹java中的equals()方法Java
- 簡單介紹Angular單元測試之事件觸發的實現Angular事件
- 簡單易懂的 Go 泛型使用和實現原理介紹Go泛型
- AOP的簡單介紹
- Webpack 的簡單介紹Web
- Pytorch 實現簡單線性迴歸PyTorch
- form表單的簡單介紹ORM
- Flownet 介紹 及光流的簡單介紹
- 簡單介紹Android自定義View實現時鐘功能AndroidView
- RSA加密演算法簡單介紹以及python實現加密演算法Python
- 簡單介紹android實現可以滑動的平滑曲線圖Android
- Map簡單介紹
- SVG簡單介紹SVG
- Clickjacking簡單介紹
- 【Pandas】簡單介紹
- ActiveMQ簡單介紹MQ
- JSON簡單介紹JSON
- RPC簡單介紹RPC
- Python簡單介紹Python
- KVM簡單介紹
- RMI簡單介紹
- HTML簡單介紹HTML
- HTML 簡單介紹HTML
- JavaScript 簡單介紹JavaScript
- CSS 簡單介紹CSS
- ajax簡單介紹