Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import random
- import pandas as pd
- import numpy as np
- import matplotlib.pyplot as plt
- from keras.models import Sequential
- from keras.layers import Dense
- from keras.utils import np_utils
- from keras.layers import LocallyConnected1D
- from keras import optimizers
- from keras import initializers
- from sklearn.model_selection import train_test_split
- def IndexOfMax(arr):
- max = arr[0]
- indexOfMax = 0
- for i in range(0, len(arr)):
- if(max < arr[i]):
- max = arr[i]
- indexOfMax = i
- return indexOfMax
- # предикторы и отклик разделяем
- # y - таблица ответов
- X = np.array([[random.randint(0, 100) for g in range(3)] for i in range(400)])
- y = np.array([IndexOfMax(arr) for arr in X])
- X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=12312, test_size=0.33)
- #Keras работает с numpy массивами, так что из dataframe конвертируем в массив
- y_train_bin = np_utils.to_categorical(y_train)
- y_test_bin = np_utils.to_categorical(y_test)
- init1 = initializers.TruncatedNormal(seed = 12332)
- init2 = initializers.Constant(value = 1e-1)
- #half deepleaning
- model = Sequential()
- model.add(Dense(4, input_dim=3, activation='relu', kernel_initializer = init1, bias_initializer = init2))
- model.add(Dense(12, activation='relu', kernel_initializer = init1, bias_initializer = init2))
- model.add(Dense(6, activation='relu', kernel_initializer = init1, bias_initializer = init2))
- model.add(Dense(3, activation='softmax', kernel_initializer = init1, bias_initializer = init2))
- # Compiling model
- #lr - лямбда, decay - изменение лямбда
- sgd = optimizers.SGD(lr = 0.1, decay = 1e-7, momentum = 0.1, nesterov = True)
- na = optimizers.Nadam()
- model.compile(loss='binary_crossentropy', optimizer=na, metrics=['accuracy'])
- # Training a model
- history = model.fit(X_train, y_train_bin, epochs=100, batch_size=10)
- # evaluate the model
- scores = model.evaluate(X_test, y_test_bin)
- print("\nAccuracy: %.2f%%" % (scores[1]*100))
- plt.plot(history.history['acc'])
- plt.show()
- # calculate predictions
- predictions = model.predict(X_test)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement