Advertisement
Guest User

Untitled

a guest
Mar 19th, 2018
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.99 KB | None | 0 0
  1. import numpy as np
  2.  
  3. def sigmoid(x):
  4.     return 1/(1+np.exp(-x))
  5.  
  6. def deriv_sigmoid(x):
  7.     return x*(1-x)
  8.  
  9. # training
  10.  
  11. # input data
  12.  
  13. x = np.array([[0, 0, 1],
  14.               [0, 1, 1],
  15.               [1, 0, 1],
  16.               [1, 1, 1]])
  17.  
  18. # output data
  19.  
  20. y = np.array([[0],
  21.               [1],
  22.               [1],
  23.               [0]])
  24.  
  25. np.random.seed(1)
  26.  
  27. syn_0 = 2*np.random.random((3,2)) - 1
  28. syn_1 = 2*np.random.random((2,1)) - 1
  29.  
  30. max_iter = 1000
  31.  
  32. for i in range(max_iter):
  33.  
  34.     l0 = x
  35.     l1 = sigmoid(np.dot(l0, syn_0))
  36.     l2 = sigmoid(np.dot(l1, syn_1))
  37.  
  38.     l2_error = y - l2
  39.  
  40.     if(i % 1000) == 0:
  41.         print("Error: %s" %np.mean(np.abs(l2_error)))
  42.  
  43.     l2_delta = l2_error * deriv_sigmoid(l2)
  44.  
  45.     syn_1 += l1.T.dot(l2_delta)
  46.  
  47.     l1_error = l2_delta.dot(syn_1.T)
  48.  
  49.     l1_delta = l1_error * deriv_sigmoid(l1)
  50.  
  51.     syn_0 += l0.T.dot(l1_delta)
  52.  
  53.  
  54. print("Output after training = %s" %l2)
  55.  
  56. # testing
  57.  
  58. x = np.array([[0, 1, 1]])
  59.  
  60. l0 = x
  61. l1 = sigmoid(np.dot(l0, syn_0))
  62. l2 = sigmoid(np.dot(l1, syn_1))
  63.  
  64. print("testing output = %s" %l2)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement