Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import numpy as np
- def sigmoid(x):
- return 1/(1+np.exp(-x))
- def deriv_sigmoid(x):
- return x*(1-x)
- # training
- # input data
- x = np.array([[0, 0, 1],
- [0, 1, 1],
- [1, 0, 1],
- [1, 1, 1]])
- # output data
- y = np.array([[0],
- [1],
- [1],
- [0]])
- np.random.seed(1)
- syn_0 = 2*np.random.random((3,2)) - 1
- syn_1 = 2*np.random.random((2,1)) - 1
- max_iter = 1000
- for i in range(max_iter):
- l0 = x
- l1 = sigmoid(np.dot(l0, syn_0))
- l2 = sigmoid(np.dot(l1, syn_1))
- l2_error = y - l2
- if(i % 1000) == 0:
- print("Error: %s" %np.mean(np.abs(l2_error)))
- l2_delta = l2_error * deriv_sigmoid(l2)
- syn_1 += l1.T.dot(l2_delta)
- l1_error = l2_delta.dot(syn_1.T)
- l1_delta = l1_error * deriv_sigmoid(l1)
- syn_0 += l0.T.dot(l1_delta)
- print("Output after training = %s" %l2)
- # testing
- x = np.array([[0, 1, 1]])
- l0 = x
- l1 = sigmoid(np.dot(l0, syn_0))
- l2 = sigmoid(np.dot(l1, syn_1))
- print("testing output = %s" %l2)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement