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

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

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

概念

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

反向傳播求導(dǎo)

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

分兩種情況考慮:

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

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

當(dāng)求導(dǎo)的參數(shù)位于分母時(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實(shí)現(xiàn)softmax反向傳播的示例代碼的文章就介紹到這了,更多相關(guān)Python softmax 反向傳播內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python中讓自定義的類使用加號"+"

    python中讓自定義的類使用加號"+"

    這篇文章主要介紹了python中讓自定義的類使用加號"+",如果對兩個對象直接“+”肯定是不行的,因?yàn)檫€沒有對CartoonImage類重載加法運(yùn)算符__add__(),下文小編舉例形式講解該內(nèi)容,需要的下伙伴可以參考一下
    2022-03-03
  • python交互模式下輸入換行/輸入多行命令的方法

    python交互模式下輸入換行/輸入多行命令的方法

    這篇文章主要介紹了python交互模式下輸入換行/輸入多行命令的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-07-07
  • Python利用xlwt/openpyxl/xlutils實(shí)現(xiàn)寫入Excel數(shù)據(jù)

    Python利用xlwt/openpyxl/xlutils實(shí)現(xiàn)寫入Excel數(shù)據(jù)

    這篇文章主要為大家詳細(xì)介紹了Python如何利用xlwt/openpyxl/xlutils這些第三方庫實(shí)現(xiàn)寫入Excel數(shù)據(jù)功能,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-11-11
  • Python3用2行代碼生成動態(tài)二維碼詳解

    Python3用2行代碼生成動態(tài)二維碼詳解

    這篇文章主要介紹了兩行Python代碼制作動態(tài)二維碼的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-10-10
  • Python爬蟲教程之利用正則表達(dá)式匹配網(wǎng)頁內(nèi)容

    Python爬蟲教程之利用正則表達(dá)式匹配網(wǎng)頁內(nèi)容

    這篇文章主要給大家介紹了關(guān)于Python爬蟲教程之利用正則表達(dá)式匹配網(wǎng)頁內(nèi)容的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • python XlsxWriter模塊創(chuàng)建aexcel表格的實(shí)例講解

    python XlsxWriter模塊創(chuàng)建aexcel表格的實(shí)例講解

    今天小編就為大家分享一篇python XlsxWriter模塊創(chuàng)建aexcel表格的實(shí)例講解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • python項(xiàng)目--使用Tkinter的日歷GUI應(yīng)用程序

    python項(xiàng)目--使用Tkinter的日歷GUI應(yīng)用程序

    在 Python 中,我們可以使用 Tkinter 制作 GUI。如果你非常有想象力和創(chuàng)造力,你可以用 Tkinter 做出很多有趣的東西,希望本篇文章能夠幫到你
    2021-08-08
  • Python利用yarl實(shí)現(xiàn)輕松操作url

    Python利用yarl實(shí)現(xiàn)輕松操作url

    在諸如網(wǎng)絡(luò)爬蟲、web應(yīng)用開發(fā)等場景中,我們需要利用Python完成大量的url解析、生成等操作。本文為大家介紹了Pythonyarl操作url的方法,需要的可以了解一下
    2022-10-10
  • 基于python編寫的五個拿來就能用的炫酷表白代碼分享

    基于python編寫的五個拿來就能用的炫酷表白代碼分享

    七夕快到了,所以本文小編將給給大家介紹五種拿來就能用的炫酷表白代碼,無限彈窗表白,愛心發(fā)射,心動表白,玫瑰花等表白代碼,需要的小伙伴快來試試吧
    2023-08-08
  • Python 編程語言詳細(xì)介紹

    Python 編程語言詳細(xì)介紹

    這篇文章主要分享的是 Python 編程語言的詳細(xì)介紹,Python 由 Guido van Rossum 設(shè)計(jì),作為“ABC”編程語言的繼承者,于 1991 年首次發(fā)布。它是一種高級通用語言,其設(shè)計(jì)理念是通過使用縮進(jìn)來強(qiáng)調(diào)代碼的可讀性。文章具有一定的參考價(jià)值,需要的朋友可以參考一下
    2021-11-11

最新評論

图片| 岑巩县| 青冈县| 潢川县| 宁海县| 平潭县| 全南县| 昌都县| 旅游| 澄城县| 河津市| 额济纳旗| 兴和县| 梅河口市| 南陵县| 高平市| 包头市| 原平市| 咸阳市| 八宿县| 上高县| 阜南县| 英吉沙县| 广宗县| 新化县| 图们市| 滦南县| 措勤县| 沅陵县| 义乌市| 永清县| 新野县| 忻州市| 江津市| 河曲县| 阆中市| 泽州县| 芜湖市| 吴堡县| 安仁县| 屯留县|