# Split Data X_train, X_valid, Y_train, Y_valid = train_test_split(X_train_valid, train_valid_labels, shuffle=True, stratify=train_valid_labels, random_state=42) #X_train, X_valid, Y_train, Y_valid = train_test_split(X_train_valid, Y_train_valid, shuffle=True, stratify=Y_train_valid, random_state=42) #%% Model Training from models.naive_gru import NaiveGRU mymodel = NaiveGRU(X_train.shape[1:]) mymodel.batch_size = PARAM_BATCH_SIZE mymodel.num_epochs = PARAM_NUM_EPOCHS mymodel.initialize() print(mymodel) #%% Save Model Summary mymodel.save_summary(dataset.get_recorded_operations()) mymodel.save_config() #%% Train Model mymodel.train(X_train, Y_train, X_valid, Y_valid) #%% Model Evaluation from utils.evaluation import get_evaluation_metrics, get_confusion_matrix #Evaluate Model # Test Score test_score = tuple(mymodel.evaluate(X_test, Y_test)) print("Test Loss: %.3f, Test Acc: %.3f%%" % (test_score[0], test_score[1] * 100)) # Recall, Precision, F1_Score on Validation set Y_predicted_valid = mymodel.predict_classes(X_valid, verbose=1) rpf = get_evaluation_metrics(Y_valid, Y_predicted_valid)