python画出激活函数 sigmoid,tanh,Relu,prelu
from matplotlib import pyplot as plt
import numpy as np
import mpl_toolkits.axisartist as axisartist
def sigmoid(x):
return 1 / (1 + np.exp(-x))
def tanh(x):
return (np.exp(x) - np.exp(-x)) / (np.exp(x) + np.exp(-x))
def relu(x):
return np.where(x < 0, 0, x)
def prelu(x):
return np.where(x < 0, 0.5 * x, x)
def plot_sigmoid():
x = np.arange(-10, 10, 0.1)
y = sigmoid(x)
plt.plot(x, y)
plt.savefig("sigmoid.png")
plt.show()
def plot_tanh():
x = np.arange(-10, 10, 0.1)
y = tanh(x)
fig = plt.figure()
ax = fig.add_subplot(111)
ax.spines['top'].set_color('none')
ax.spines['right'].set_color('none')
ax.spines['left'].set_position(('data', 0))
ax.spines['bottom'].set_position(('data', 0))
ax.plot(x, y)
plt.xlim([-10.05, 10.05])
plt.ylim([-1.02, 1.02])
ax.set_yticks([-1.0, -0.5, 0.5, 1.0])
ax.set_xticks([-10, -5, 5, 10])
plt.tight_layout()
plt.savefig("tanh.png")
plt.show()
def plot_relu():
x = np.arange(-10, 10, 0.1)
y = relu(x)
plt.plot(x, y)
plt.savefig("relu.png")
plt.show()
def plot_prelu():
x = np.arange(-10, 10, 0.1)
y = prelu(x)
fig = plt.figure()
ax = fig.add_subplot(111)
ax.spines['top'].set_color('none')
ax.spines['right'].set_color('none')
ax.spines['left'].set_position(('data', 0))
ax.spines['bottom'].set_position(('data', 0))
ax.plot(x, y)
plt.tight_layout()
plt.savefig("prelu.png")
plt.show()
if __name__ == "__main__":
plot_sigmoid()
plot_tanh()
plot_relu()
plot_prelu()
sigmoid()函数
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/b20f5b0461091e094e93311270d07db7.png)
tanh()函数
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/8120990e9ebd4c516a131816012cda97.png)
Relu()函数
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/9079c7a1989a16ac32f6650923021f44.png)
prelu()函数
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/193f4bfcb7b5d89b640dec0add0986c1.png)