Advertisement
meta1211

Untitled

Feb 28th, 2019
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.16 KB | None | 0 0
  1. import random
  2. import pandas as pd
  3. import numpy as np
  4. import matplotlib.pyplot as plt
  5. from keras.models import Sequential
  6. from keras.layers import Dense
  7. from keras.utils import np_utils
  8. from keras.layers import LocallyConnected1D
  9. from keras import optimizers
  10. from keras import initializers
  11. from sklearn.model_selection import train_test_split
  12.  
  13. def IndexOfMax(arr):
  14.     max = arr[0]
  15.     indexOfMax = 0
  16.     for i in range(0, len(arr)):
  17.         if(max < arr[i]):
  18.             max = arr[i]
  19.             indexOfMax = i
  20.     return indexOfMax
  21.  
  22. #  предикторы и отклик разделяем
  23. # y - таблица ответов
  24. X = np.array([[random.randint(0, 100) for g in range(3)] for i in range(400)])
  25. y = np.array([IndexOfMax(arr) for arr in X])
  26. X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=12312, test_size=0.33)
  27.  
  28. #Keras работает с numpy массивами, так что из dataframe конвертируем в массив
  29.  
  30.  
  31. y_train_bin = np_utils.to_categorical(y_train)
  32. y_test_bin = np_utils.to_categorical(y_test)
  33.  
  34. init1 = initializers.TruncatedNormal(seed = 12332)
  35. init2 = initializers.Constant(value = 1e-1)
  36.  
  37. #half deepleaning
  38. model = Sequential()
  39. model.add(Dense(4, input_dim=3, activation='relu', kernel_initializer = init1, bias_initializer = init2))
  40. model.add(Dense(12, activation='relu', kernel_initializer = init1, bias_initializer = init2))
  41. model.add(Dense(6, activation='relu', kernel_initializer = init1, bias_initializer = init2))
  42. model.add(Dense(3, activation='softmax', kernel_initializer = init1, bias_initializer = init2))
  43.  
  44. # Compiling model
  45. #lr - лямбда, decay - изменение лямбда
  46. sgd = optimizers.SGD(lr = 0.1, decay = 1e-7, momentum = 0.1, nesterov = True)
  47. na = optimizers.Nadam()
  48. model.compile(loss='binary_crossentropy', optimizer=na, metrics=['accuracy'])
  49.  
  50.  
  51. # Training a model
  52. history = model.fit(X_train, y_train_bin, epochs=100, batch_size=10)
  53.  
  54. # evaluate the model
  55. scores = model.evaluate(X_test, y_test_bin)
  56. print("\nAccuracy: %.2f%%" % (scores[1]*100))
  57. plt.plot(history.history['acc'])
  58. plt.show()
  59. # calculate predictions
  60. predictions = model.predict(X_test)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement