实现一个感知机
import numpy as np
def relu(x):
return np.where(x>0,x,0)
def sigmoid(x):
return 1/(1+np.exp(-x))
class NeuralNetwork():
def __init__(self):
self.param = {}
self.param['W1'] = np.random.rand(2,3)
self.param['b1'] = np.random.rand(1,3)
self.param['W2'] = np.random.rand(3,2)
self.param['b2'] = np.random.rand(1,2)
self.param['W3'] = np.random.rand(2,1)
self.param['b3'] = np.random.rand(1,1)
def forward(self,x):
a1 = np.dot(x,self.param['W1']) + self.param['b1']
z1 = relu(a1)
a2 = np.dot(z1, self.param['W2']) + self.param['b2']
z2 = relu(a2)
a3 = np.dot(z2, self.param['W3']) + self.param['b3']
return np.where(sigmoid(a3)>0.5, 1, 0)
if __name__ == "__main__":
nn = NeuralNetwork()
print(nn.forward(np.array([3,2])))