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

Python實現(xiàn)softmax反向傳播的示例代碼

 更新時間:2023年04月09日 14:10:10   作者:SugerOO  
這篇文章主要為大家詳細(xì)介紹了Python實現(xiàn)softmax反向傳播的相關(guān)資料,文中的示例代碼講解詳細(xì),具有一定的參考價值,感興趣的可以了解一下

概念

softmax函數(shù)是常用的輸出層函數(shù),常用來解決互斥標(biāo)簽的多分類問題。當(dāng)然由于他是非線性函數(shù),也可以作為隱藏層函數(shù)使用

反向傳播求導(dǎo)

可以看到,softmax 計算了多個神經(jīng)元的輸入,在反向傳播求導(dǎo)時,需要考慮對不同神經(jīng)元的參數(shù)求導(dǎo)。

分兩種情況考慮:

  • 當(dāng)求導(dǎo)的參數(shù)位于分子時
  • 當(dāng)求導(dǎo)的參數(shù)位于分母時

當(dāng)求導(dǎo)的參數(shù)位于分子時:

當(dāng)求導(dǎo)的參數(shù)位于分母時(ez2 or ez3這兩個是對稱的,求導(dǎo)結(jié)果是一樣的):

代碼

import torch
import math

def my_softmax(features):
    _sum = 0
    for i in features:
        _sum += math.e ** i
    return torch.Tensor([ math.e ** i / _sum for i in features ])

def my_softmax_grad(outputs):    
    n = len(outputs)
    grad = []
    for i in range(n):
        temp = []
        for j in range(n):
            if i == j:
                temp.append(outputs[i] * (1- outputs[i]))
            else:
                temp.append(-outputs[j] * outputs[i])
        grad.append(torch.Tensor(temp))
    return grad

if __name__ == '__main__':

    features = torch.randn(10)
    features.requires_grad_()

    torch_softmax = torch.nn.functional.softmax
    p1 = torch_softmax(features,dim=0)
    p2 = my_softmax(features)
    print(torch.allclose(p1,p2))
    
    n = len(p1)
    p2_grad = my_softmax_grad(p2)
    for i in range(n):
        p1_grad = torch.autograd.grad(p1[i],features, retain_graph=True)
        print(torch.allclose(p1_grad[0], p2_grad[i]))

到此這篇關(guān)于Python實現(xiàn)softmax反向傳播的示例代碼的文章就介紹到這了,更多相關(guān)Python softmax 反向傳播內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • TFRecord格式存儲數(shù)據(jù)與隊列讀取實例

    TFRecord格式存儲數(shù)據(jù)與隊列讀取實例

    今天小編就為大家分享一篇TFRecord格式存儲數(shù)據(jù)與隊列讀取實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • Python3邏輯運(yùn)算符與成員運(yùn)算符

    Python3邏輯運(yùn)算符與成員運(yùn)算符

    這篇文章主要介紹了Python3邏輯運(yùn)算符與成員運(yùn)算符,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的朋友可以參考一下
    2022-09-09
  • 20行Python代碼實現(xiàn)一款永久免費(fèi)PDF編輯工具的實現(xiàn)

    20行Python代碼實現(xiàn)一款永久免費(fèi)PDF編輯工具的實現(xiàn)

    這篇文章主要介紹了20行Python代碼實現(xiàn)一款永久免費(fèi)PDF編輯工具的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • Django 開發(fā)調(diào)試工具 Django-debug-toolbar使用詳解

    Django 開發(fā)調(diào)試工具 Django-debug-toolbar使用詳解

    這篇文章主要介紹了Django 開發(fā)調(diào)試工具 Django-debug-toolbar使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-07-07
  • python 日期操作類代碼

    python 日期操作類代碼

    這篇文章主要介紹了python 日期操作類代碼,里面涉及了python日期操作的一些基礎(chǔ)知識,需要的朋友可以參考下
    2018-05-05
  • Python中使用socket發(fā)送HTTP請求數(shù)據(jù)接收不完整問題解決方法

    Python中使用socket發(fā)送HTTP請求數(shù)據(jù)接收不完整問題解決方法

    這篇文章主要介紹了Python中使用socket發(fā)送HTTP請求數(shù)據(jù)接收不完整問題解決方法,本文使用一個循環(huán)解決了數(shù)據(jù)不完整問題,需要的朋友可以參考下
    2015-02-02
  • python+mysql實現(xiàn)教務(wù)管理系統(tǒng)

    python+mysql實現(xiàn)教務(wù)管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了python+mysql實現(xiàn)教務(wù)管理系統(tǒng),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • python異常和文件處理機(jī)制詳解

    python異常和文件處理機(jī)制詳解

    這篇文章主要介紹了python異常和文件處理機(jī)制,詳細(xì)分析了Python異常處理的常用語句、使用方法及相關(guān)注意事項,需要的朋友可以參考下
    2016-07-07
  • 原生python實現(xiàn)knn分類算法

    原生python實現(xiàn)knn分類算法

    這篇文章主要介紹了原生python實現(xiàn)knn分類算法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • Python設(shè)計模式中的備忘錄模式

    Python設(shè)計模式中的備忘錄模式

    這篇文章主要為大家詳細(xì)介紹了Python設(shè)計模式中的備忘錄模式,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02

最新評論