def fn(x):
if x<=0:
return 0
if x>0:
return 1
def step_function(x:np.array):
y = x > 0
return y.astype(np.int)
print(step_function(np.arange(-0.5,0.5,0.1)))
以上使用了NumPy中的“技巧”,对x这个NumPy数组进行了不等号运算,由于最后的y在经过了不等号运算后为bool类型的数组,所以使用了astype方法将其转换为int类型数组
以下我们将用matplotlab库来画出阶跃函数
import numpy as np
import matplotlib.pyplot as plt
def fn(x:np.array):
return np.array(x>0,dtype=np.int)
x=np.arange(-5.0,5.0,0.1)
y=fn(x)
plt.plot(x,y)
plt.ylim(-0.1,1.1)
plt.show()
sigmoid函数
import numpy as np
import matplotlib.pyplot as plt
def sigmoid(x):
y=1/(1+np.exp(-x))
return y
x=np.arange(-5.0,5.0,0.1)
y=sigmoid(x)
plt.plot(x,y)
plt.ylim(-0.1,1.1)
plt.show()
ReLu函数
import numpy as np
import matplotlib.pyplot as plt
def ReLu(x):
return np.maximum(0,x)
x=np.arange(-5.0,5.0,0.1)
y=ReLu(x)
plt.plot(x,y)
plt.ylim(-0.1,5.0)
plt.show()
三层神经元测试对应的代码(对应笔记中的图3-14)
import numpy as np
x=np.array([1,2])#输入层
w=np.array([[1,3,5],[2,4,6]])
Y=np.dot(x,w)
print(Y)