chrisvlds/MLProject
0
1import pickle2import numpy as np3import pandas as pd4from tensorflow import keras5from keras.models import Sequential6from keras.layers import Dense7import tensorflow as tf8from sklearn.preprocessing import LabelEncoder9from keras.datasets import mnist10from keras.utils import np_utils11from keras.models import Sequential12from keras.layers import Dense, Flatten, Conv2D, MaxPooling2D13import matplotlib.pyplot as plt14import numpy as np15 16upData = pd.read_csv('squat_up.csv', header=None, usecols=[1, 2, 3, 4, 5])17upData = pd.DataFrame(upData)18upData = upData.to_numpy()19upData = upData.astype('float32')20upData = np.delete(upData, 0, 0)21 22downData = pd.read_csv('squat_down2.csv', header=None, usecols=[1, 2, 3, 4, 5])23downData = pd.DataFrame(downData)24downData = downData.to_numpy()25downData = downData.astype('float32')26downData = np.delete(downData, 0, 0)27 28data = np.concatenate([upData, downData], axis=0)29np.random.shuffle(data)30numD = len(data)31setData = round(numD * 0.2)32test = data[:setData]33train = data[setData:]34trainX = train[:, :4]35testX = test[:, :4]36trainY = train[:, 4]37testY = test[:, 4]38 39encoding = LabelEncoder()40encoding.fit(testY)41testY = encoding.transform(testY)42testY = tf.keras.utils.to_categorical(testY)43encoding.fit(trainY)44trainY = encoding.transform(trainY)45trainY = tf.keras.utils.to_categorical(trainY)46 47model = Sequential()48#model.add(Dense(16, input_dim=4, activation='sigmoid'))49#model.add(Dense(2, activation='sigmoid'))50model.add(Dense(64, input_dim=4, activation='relu'))51model.add(Dense(32, activation='relu'))52model.add(Dense(16, activation='relu'))53model.add(Dense(8, activation='relu'))54model.add(Dense(2, activation='sigmoid'))55model.compile(loss='categorical_crossentropy', metrics=['acc'])56history = model.fit(trainX, trainY, batch_size=1, epochs=100, validation_data=(testX, testY))57#history = model.fit(trainX, trainY, epochs=200, batch_size=1)58 59pickle.dump(model, open('model2.1.pkl', 'wb'))60 61plt.plot(history.history['acc'])62plt.plot(history.history['val_acc'])63plt.title('Model Accuracy')64plt.ylabel('Accuracy')65plt.xlabel('Epoch')66plt.legend(['train', 'val'], loc='upper left')67plt.show()68 69# plot training and validation loss70plt.plot(history.history['loss'])71plt.plot(history.history['val_loss'])72plt.title('Model Loss')73plt.ylabel('Loss')74plt.xlabel('Epoch')75plt.legend(['train', 'val'], loc='upper left')76plt.show()77 