sigmoid和relu函数 图代码
import numpy as np
import matplotlib.pyplot as plt
from sympy import *
import math
import matplotlib as mpl
def func(x):
#return 1.0/(1.0+np.exp(-x))#sigmoid函数
return np.maximum(0, x) #relu函数
x1=np.linspace(-6,6,1000) #这个表示在-5到5之间生成1000个x值
y=func(x1)
plt.xlim((-6,6))
plt.ylim((0.00,1.0))
plt.yticks([0,0.5,1.0],[0,0.5,1.0]) #设置y轴显示的刻度
plt.plot(x1,y,color='darkblue') #用上述生成的1000个xy值对生成1000个点
ax=plt.gca()
ax.spines['right'].set_color('none') #删除右边框设为无
ax.spines['top'].set_color('none') #删除上边框设为无
ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data', 0)) #调整x轴位置
ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data', 0)) #调整y轴位置
plt.xlabel("derivative")
plt.show()
mish
import numpy as np
import matplotlib.pyplot as plt
from sympy import *
import math
e=math.e
def tanh(x):
return (e**x-e**(-x))/(e**x+e**(-x))
def softplus(x):
return math.log(1+pow(e,x))
def mish(x):
return x*tanh(softplus(x))
x=np.linspace(-6,6,1000) #这个表示在-5到5之间生成1000个x值
y=np.linspace(-6,6,1000)
for i in range(1000):
y[i]=mish(x[i])
#y = relu(x)
#print(diff(relu(x)),x)
plt.xlim((-6,6))
plt.ylim((-0.50,5.00))
plt.yticks([-0.5,2.5,5],[-0.5,2.5,5]) #设置y轴显示的刻度
plt.plot(x,y,color='red') #用上述生成的1000个xy值对生成1000个点
ax=plt.gca()
ax.spines['right'].set_color('none') #删除右边框设为无
ax.spines['top'].set_color('none') #删除上边框设为无
ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data', 0)) #调整x轴位置
ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data', 0)) #调整y轴位置
plt.xlabel("")
plt.show()