python中如何使用matplotlib模塊

這篇文章給大家介紹python中如何使用matplotlib模塊,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

創(chuàng)新互聯(lián)公司從2013年成立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目網(wǎng)站設(shè)計制作、網(wǎng)站設(shè)計網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元集美做網(wǎng)站,已為上家服務(wù),為集美各地企業(yè)和個人服務(wù),聯(lián)系電話:18980820575

常見的激活函數(shù)效果圖如下:

代碼區(qū):

#!E:\anaconda\python.exe

# -*-coding:utf-8 -*-

"""

功能:繪制激活函數(shù) 常見的激活函數(shù)有sigmoid、tanh、ReLU、eru、leaky ReLU、softmax

時間:2019/10/6

"""

from matplotlib import pyplot as plt

import numpy as np

# 1.sigmoid函數(shù)的表達(dá)式:f(x) = 1/(1+e^-x)

x = np.linspace(-6,6,200)

def sigmoid(x):

y = 1/(1+np.exp(-x))

return y

# 2.tanh的函數(shù)表達(dá)式: f(x) = (e^x-e^-x)/(e^x+e-x)

def tanh(x):

y = (np.exp(x) - np.exp(-x))/(np.exp(x) + np.exp(-x))

return y

#3. ReLu 的函數(shù)表達(dá)式: f(x)= 當(dāng)x<0 f(x)0 當(dāng)x>=0 f(x) = x

def ReLU(x):

y = []

for i in x:

if i >= 0:

y.append(i)

else:

y.append(0)

return y

#return np.maximum(x,[0]*100) #可以利用np中的maximum方法表示,也可以用上述方法

#4.elu 的函數(shù)表達(dá)式 f(x) x>=0 f(x)=x x<0 f(x) =a(e^x -1)

def elu(x,a):

y = []

for i in x:

if i>=0:

y.append(i)

else:

y.append(a*(np.exp(i)-1))

return y

#5.leaky ReLU 的函數(shù)表達(dá)式 x>=0 f(x)=x x<0 f(x) =0.01x

def LReLU(x):

y = []

for i in x:

if i>=0:

y.append(i)

else:

y.append(0.01*i)

return y

# softmax激活函數(shù) softmax的表達(dá)式為:輸入信號的指數(shù)函數(shù)除以所有輸入信號的指數(shù)和

def softmax(x):

c = np.max(x) #解決溢出問題

exe_x = np.exp(x)

exe_s = np.sum(exe_x)

y = exe_x/exe_s

return y

plt.subplot(1,2,1) #畫子圖

plt.plot(x,sigmoid(x),c="red",lw="2",label = "sigmiod")

plt.plot(x,tanh(x),c="blue",lw="2",label = "tanh")

plt.plot(x,softmax(x),c="yellow",lw="2",label = "softmax")

plt.gca().spines["bottom"].set_position(("data",0)) #將函數(shù)圖像移動到x軸(0,0)

plt.gca().spines["left"].set_position(("data",0)) #將函數(shù)圖形移動到y(tǒng)軸(0,0)

plt.xlabel("x軸",fontproperties="SimHei")

plt.ylabel("y軸",fontproperties="SimHei")

plt.title("激活函數(shù)",fontproperties="SimHei")

plt.legend(loc="best")

plt.subplot(1,2,2)

plt.plot(x,ReLU(x),c="blue",lw="2",label="ReLU")

plt.plot(x,elu(x,0.1),c="yellow",lw="2",label="elu")

plt.plot(x,LReLU(x),c="green",lw="2",label="LReLU")

plt.gca().spines["bottom"].set_position(("data",0))

plt.gca().spines["left"].set_position(("data",0))

plt.xlabel("x軸",fontproperties="SimHei")

plt.ylabel("y軸",fontproperties="SimHei")

plt.title("激活函數(shù)",fontproperties="SimHei")

plt.legend(loc="best")

plt.show()

**

sigmoid激活函數(shù):

**

優(yōu)點(diǎn):1.輸出[0,1]之間,利用前向傳播

2.連續(xù)函數(shù),方便求導(dǎo)

缺點(diǎn):1.容易產(chǎn)生梯度消失。一般5層以內(nèi)就會產(chǎn)生梯度消失的現(xiàn)象。

2.輸出不是以零為中心

3.大量運(yùn)算時相當(dāng)耗時(由于是冪函數(shù))

**

tanh激活函數(shù):

**

優(yōu)點(diǎn):1.輸出[-1,1]之間,利用前向傳播

2.連續(xù)函數(shù),方便求導(dǎo)

3.輸出以零為中心

缺點(diǎn):1.容易產(chǎn)生梯度消失。一般5層以內(nèi)就會產(chǎn)生梯度消失的現(xiàn)象。

2.大量數(shù)據(jù)運(yùn)算時相當(dāng)耗時(由于是冪函數(shù))

**

ReLU激活函數(shù):

**

優(yōu)點(diǎn):1.解決了正區(qū)間梯度消失問題

2.易于計算

3.收斂速度快

缺點(diǎn):1.輸出不是以零為中心

2.某些神經(jīng)元不能被激活,導(dǎo)致參數(shù)永遠(yuǎn)不能更新

**無錫人流醫(yī)院哪家好 http://www.bhnnkyy120.com/

Leaky ReLU激活函數(shù):

**

優(yōu)點(diǎn):

1.解決了正區(qū)間梯度消失問題

2.易于計算

3.收斂速度快

4.解決了某些神經(jīng)元不能被激活

缺點(diǎn):輸出不是以零為中心

**

elu激活函數(shù):

**

優(yōu)點(diǎn):

1.解決了正區(qū)間梯度消失問題

2.易于計算

3.收斂速度快

4.解決了某些神經(jīng)元不能被激活

5.輸出的均值為0

缺點(diǎn):輸出不是以零為中心

softmax激活函數(shù):

**

一般用在分類的輸出層作為激活函數(shù)

優(yōu)點(diǎn):

1.輸出在[0,1]之間,可以當(dāng)初概率

缺點(diǎn):

在實際問題中,由于冪運(yùn)算需要時間,而且softmax不會影響各元素的大小,因此輸出層的softmax激活函數(shù)一般被省略。

關(guān)于python中如何使用matplotlib模塊就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

分享標(biāo)題:python中如何使用matplotlib模塊
分享鏈接:http://bm7419.com/article4/goeoie.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、外貿(mào)建站網(wǎng)頁設(shè)計公司、微信公眾號、微信小程序、外貿(mào)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計公司