python編寫softmax函數、交叉熵函數實例

 更新時間:2020-06-14 01:15:41   作者:佚名   我要評論(0)


python代碼如下:


import numpy as np

# Write a function that takes as input a list of numbers, and returns
# the list of values given by the softmax

python代碼如下:

import numpy as np
 
# Write a function that takes as input a list of numbers, and returns
# the list of values given by the softmax function.
def softmax(L):
 pass
 expL = np.exp(L)
 sumExpL = sum(expL)
 result = []
 for i in expL:
  result.append(i*1.0/sumExpL)
 return result

python編寫交叉熵公式:

import numpy as np
 
def cross_entropy(Y, P):
 Y = np.float_(Y)
 P = np.float_(P)
 return -np.sum(Y * np.log(P) + (1 - Y) * np.log(1 - P))

補充知識:分類時,為什么不使用均方誤差而是使用交叉熵作為損失函數

MSE(均方誤差)對于每一個輸出的結果都非常看重,而交叉熵只對正確分類的結果看重。

例如:在一個三分類模型中,模型的輸出結果為(a,b,c),而真實的輸出結果為(1,0,0),那么MSE與cross-entropy相對應的損失函數的值如下:

MSE:

cross-entropy:

從上述的公式可以看出,交叉熵的損失函數只和分類正確的預測結果有關系,而MSE的損失函數還和錯誤的分類有關系,該分類函數除了讓正確的分類盡量變大,還會讓錯誤的分類變得平均,但實際在分類問題中這個調整是沒有必要的。

但是對于回歸問題來說,這樣的考慮就顯得很重要了。所以,回歸問題熵使用交叉上并不合適。

以上這篇python編寫softmax函數、交叉熵函數實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

您可能感興趣的文章:

  • Softmax函數原理及Python實現過程解析
  • Pytorch 的損失函數Loss function使用詳解
  • Pytorch十九種損失函數的使用詳解

相關文章

  • python編寫softmax函數、交叉熵函數實例

    python編寫softmax函數、交叉熵函數實例

    python代碼如下: import numpy as np # Write a function that takes as input a list of numbers, and returns # the list of values given by the softmax
    2020-06-14
  • python開發前景如何

    python開發前景如何

    隨著近幾年Python的飛速發展,應用范圍逐步趨于廣泛,后端開發、前端開發、爬蟲、金融量化分析、人工智能、自動化運維、自動化運維、大數據,Python都有涉及。Pytho
    2020-06-14
  • 新手學python應該下哪個版本

    新手學python應該下哪個版本

    想學習Python的人都會有一個困惑,那就是Python目前有兩個版本Python2和Python3,Python2與Python3有何區別,兩個版本該學習哪個呢? python3 和 python2是不兼容的
    2020-06-14
  • python的help函數如何使用

    python的help函數如何使用

    help函數是python的一個內置函數,在python基礎知識中介紹過什么是內置函數,它是python自帶的函數,任何時候都可以被使。help函數能作什么、怎么使用help函數查看p
    2020-06-14
  • keras實現多種分類網絡的方式

    keras實現多種分類網絡的方式

    Keras應該是最簡單的一種深度學習框架了,入門非常的簡單. 簡單記錄一下keras實現多種分類網絡:如AlexNet、Vgg、ResNet 采用kaggle貓狗大戰的數據作為數據集. 由于
    2020-06-14
  • 基于python實現模擬數據結構模型

    基于python實現模擬數據結構模型

    模擬棧 Stack() 創建一個空的新棧。 它不需要參數,并返回一個空棧。 push(item)將一個新項添加到棧的頂部。它需要 item 做參數并不返回任何內容。 pop()
    2020-06-14
  • python新手學習使用庫

    python新手學習使用庫

    本文主要介紹下如何使用第三方庫。 1. 理解第三方庫 Python相當于一個手機,第三方庫相當于手機里各種各樣的APP。 當我們想搭建網站時,可以選擇功能全面的Django、
    2020-06-14
  • Python數據可視化圖實現過程詳解

    Python數據可視化圖實現過程詳解

    python畫分布圖代碼示例: # encoding=utf-8 import matplotlib.pyplot as plt from pylab import * # 支持中文 mpl.rcParams['font.sans-serif'] = ['SimHei']
    2020-06-14
  • keras的siamese(孿生網絡)實現案例

    keras的siamese(孿生網絡)實現案例

    代碼位于keras的官方樣例,并做了微量修改和大量學習?。 最終效果: import keras import numpy as np import matplotlib.pyplot as plt import random f
    2020-06-14
  • 為什么說python適合寫爬蟲

    為什么說python適合寫爬蟲

    抓取網頁本身的接口 相比與其他靜態編程語言,如java,c#,C++,python抓取網頁文檔的接口更簡潔;相比其他動態腳本語言,如perl,shell,python的urllib2包提供了較
    2020-06-14

最新評論

买宝宝用品赚钱吗 政府基金配资 内蒙古快三选号技巧规律 陕西快乐10分开奖结果16 河北11远5遗漏一定牛 华盛配资 重庆幸运农场杀号技巧 配资公司!鑫配资 吉林十一选五开奖直 一肖一特期期免费中特 北京pk10计划 湖北快3杀号技巧 3d图谜字谜总汇全图汇总牛彩网 股票基金 管家婆四肖期期准精选资料 股票下跌中放量 体彩河南泳坛夺金玩法