X_train = data["train_imgs"].squeeze()[:N_train, :] L_train = data["train_labels"][:N_train] T_train = np.zeros((N_train, L_train.max() + 1)) T_train[np.arange(N_train), L_train] = 1 N_test = data["test_no"] X_test = data["test_imgs"].squeeze() L_test = data["test_labels"] T_test = np.zeros((N_test, L_test.max() + 1)) T_test[np.arange(N_test), L_test] = 1 # ------------------------------------------------------------------------------ # ------ Closed form solution cf_model = LinearClassifier() cf_model.closed_form(X_train, T_train) acc, conf = evaluate(cf_model, X_test, L_test) print("[Closed Form] Accuracy on test set: %f" % acc) print(conf) plot_confusion_matrix(conf, 1, "Closed form") acc1 = np.ones(EPOCHS_NO) * acc print("-------------------") # ------------------------------------------------------------------------------ # ------ Gradient optimization of linear model grad_model = LinearClassifier()