predictions = Dense(5, activation="softmax", name="dl1preds")(fc1) model = Model(input=[imgvecs], output=[predictions]) model.compile(optimizer="adadelta", loss="categorical_crossentropy", metrics=["accuracy"]) best_model = os.path.join(MODEL_DIR, "tl-dl1-model-best.h5") checkpoint = ModelCheckpoint(filepath=best_model, verbose=1, save_best_only=True) history = model.fit([Xtrain], [Ytrain], nb_epoch=NUM_EPOCHS, batch_size=BATCH_SIZE, validation_split=0.1, callbacks=[checkpoint]) fttlutils.plot_loss(history) # evaluate final model Ytest_ = model.predict(Xtest) ytest = np_utils.categorical_probas_to_classes(Ytest) ytest_ = np_utils.categorical_probas_to_classes(Ytest_) fttlutils.print_stats(ytest, ytest_, "Final Model (DL#1)") model.save(os.path.join(MODEL_DIR, "tl-dl1-model-final.h5")) # load best model and evaluate model = load_model(os.path.join(MODEL_DIR, "tl-dl1-model-best.h5")) model.compile(optimizer="adadelta", loss="categorical_crossentropy", metrics=["accuracy"]) Ytest_ = model.predict(Xtest) ytest = np_utils.categorical_probas_to_classes(Ytest) ytest_ = np_utils.categorical_probas_to_classes(Ytest_) fttlutils.print_stats(ytest, ytest_, "Best Model (DL#1)")
import numpy as np import os import fttlutils ##################### main ###################### DATA_DIR = "../data/files" MODEL_DIR = os.path.join(DATA_DIR, "models") # data X = np.loadtxt(os.path.join(DATA_DIR, "images-X.txt"), delimiter=",") y = np.loadtxt(os.path.join(DATA_DIR, "images-y.txt"), delimiter=",", dtype=np.int) Xtrain, Xtest, ytrain, ytest = fttlutils.train_test_split(X, y, test_size=0.3, random_state=42) print(Xtrain.shape, Xtest.shape, ytrain.shape, ytest.shape) # model clf = LogisticRegression() clf.fit(Xtrain, ytrain) ytest_ = clf.predict(Xtest) fttlutils.print_stats(ytest, ytest_, "LR Model") with open(os.path.join(MODEL_DIR, "lr-model.pkl"), "wb") as fmodel: pickle.dump(clf, fmodel)