def run_demo(): """ Sequence of function calls to run the demo """ X_train, Y_train, X_val, Y_val = get_data() # get data betas, cost_values, clf_errors, val_errors = fit_model( X_train, Y_train, X_val, Y_val) # fit model plot_errors(cost_values, clf_errors, val_errors) # plot the error curves print_results(clf_errors, val_errors) # Print the accuracies
att_model.summary() f1_attn.append(max(metrics_attn.val_f1s)) acc_attn.append(history.history["val_acc"][metrics_attn.ind]) print( "F1-Werte aller Modelle: Index in Liste entspr. Index im ausgelagerten Modell" ) print(" => Modell mit dem besten Wert einlesen") print("Attn. F1:\t", f1_attn) # Standardabweichung und Durchschnitt für Accuracy und F1-Wert ausgeben misc.print_results([[ "Attn.", np.std(acc_attn), np.mean(acc_attn), np.std(f1_attn), np.mean(f1_attn) ]], iterations) # Modelle einlesen -> bester Wert ermittelt durch Epochen # best_lstm_model = load_model( best_attn_model = load_model( "model_attn_{}.h5".format(f1_attn.index(max(f1_attn))), custom_objects={'SeqSelfAttention': SeqSelfAttention}) # Modelle auf beiden Datensätzen auswerten (Reddit bzw. Semeval) # und Maße ausgeben print("Name & Datensatz : Score\tAccuracy\tF1-Wert\tConfusion Matrix") print( "Attn. -> reddit : \t",
acc_cnn.append(history.history["val_acc"][metrics_cnn.ind]) f1_cnn.append(max(metrics_cnn.val_f1s)) f1_attn = [] acc_attn = [] print( "F1-Werte aller Modelle: Index in Liste entspr. Index im ausgelagerten Modell" ) print(" => Modell mit dem besten Wert einlesen") print("CNN F1:\t", f1_cnn) # Standardabweichung und Durchschnitt für Accuracy und F1-Wert ausgeben misc.print_results([[ "CNN", np.std(acc_cnn), np.mean(acc_cnn), np.std(f1_cnn), np.mean(f1_cnn) ]], iterations) # Modelle einlesen -> bester Wert ermittelt durch Epochen best_cnn_model = load_model("model_CNN_{}.h5".format( f1_cnn.index(max(f1_cnn)))) # Modelle auf beiden Datensätzen auswerten (Reddit bzw. Semeval) # und Maße ausgeben print("Name & Datensatz : Score\tAccuracy\tF1-Wert\tConfusion Matrix") print( "CNN -> reddit : \t", *misc.eval_model(best_cnn_model, "CNN reddit", X_test_reddit, y_test_reddit))
lstm_model.summary() f1_lstm.append(max(metrics_lstm.val_f1s)) acc_lstm.append(history.history["val_acc"][metrics_lstm.ind]) print( "F1-Werte aller Modelle: Index in Liste entspr. Index im ausgelagerten Modell" ) print(" => Modell mit dem besten Wert einlesen") print("BiLSTM F1:\t", f1_lstm) # Standardabweichung und Durchschnitt für Accuracy und F1-Wert ausgeben misc.print_results([[ "BiLSTM", np.std(acc_lstm), np.mean(acc_lstm), np.std(f1_lstm), np.mean(f1_lstm) ]], iterations) # Modelle einlesen -> bester Wert ermittelt durch Epochen best_lstm_model = load_model("model_BiLSTM_{}.h5".format( f1_lstm.index(max(f1_lstm)))) # Modelle auf beiden Datensätzen auswerten (Reddit bzw. Semeval) # und Maße ausgeben print("Name & Datensatz : Score\tAccuracy\tF1-Wert\tConfusion Matrix") print( "BiLSTM -> reddit : \t", *misc.eval_model(best_lstm_model, "BiLSTM reddit", X_test_reddit, y_test_reddit))
print("CNN F1:\t", f1_cnn) print("Attn. F1:\t", f1_attn) # Standardabweichung und Durchschnitt für Accuracy und F1-Wert ausgeben misc.print_results([ [ "BiLSTM", np.std(acc_lstm), np.mean(acc_lstm), np.std(f1_lstm), np.mean(f1_lstm) ], [ "CNN", np.std(acc_cnn), np.mean(acc_cnn), np.std(f1_cnn), np.mean(f1_cnn) ], [ "Attn.", np.std(acc_attn), np.mean(acc_attn), np.std(f1_attn), np.mean(f1_attn) ], ], iterations) # Modelle einlesen -> bester Wert ermittelt durch Epochen best_lstm_model = load_model("model_BiLSTM_{}.h5".format( f1_lstm.index(max(f1_lstm))))