Advertisement
Guest User

Untitled

a guest
Oct 20th, 2019
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.96 KB | None | 0 0
  1. """ Odd/even Classifier with a Feed Forward Neural Network """
  2. import keras
  3. import matplotlib.pyplot as plt
  4. import numpy as np
  5. from sklearn.model_selection import train_test_split
  6.  
  7.  
  8. def tobin(d, pad=8):
  9. return [int(i) for i in bin(2**pad + d)[2:]][1:]
  10.  
  11.  
  12. input_numbers = np.array([tobin(i) for i in range(256)])
  13. input_labels = np.array([i % 2 for i in range(256)])
  14.  
  15. in_train, in_test, out_train, out_test = train_test_split(input_numbers, input_labels, test_size=0.33)
  16.  
  17. model = keras.models.Sequential([
  18. keras.layers.Dense(8, input_dim=8),
  19. keras.layers.Dense(1)
  20. ])
  21.  
  22. model.compile(loss='mean_squared_error', optimizer='sgd')
  23.  
  24. model.fit(
  25. in_train,
  26. out_train,
  27. epochs=50
  28. )
  29.  
  30. print(model.evaluate(in_test, out_test))
  31.  
  32. p = model.predict(input_numbers)
  33. sq = sum(([0 if i < 0.5 else 1 for i in p] - input_labels)**2)
  34.  
  35. print("Square error: #{} → {}%".format(sq, 100 * sq / len(input_numbers)))
  36.  
  37. plt.plot([0 if i < 0.5 else 1 for i in model.predict(input_numbers)])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement