Exemplo n.º 1
0
    # ########## SET UP MODEL ########## #
    model = FullyConnectedClassifier(**network_args).to(DEVICE)
    model.load_state_dict(
        torch.load(
            os.path.join(MODEL_LOAD_PATH, "fold_" + str(fold) + ".weights")))

    optimizer = optim.Adam(model.parameters(),
                           lr=LEARNING_RATE,
                           weight_decay=WEIGHT_DECAY)
    loss_function = nn.BCELoss()

    # ########## EVALUATE ########## #

    test_args = {
        "model": model,
        "device": DEVICE,
        "test_loader": test_loader,
        "loss_function": loss_function,
        "debug_mode": False,
        "fold_num": fold,
        "predictions_save_path":
        CROSS_VALIDATION_WHEN_HAND_CRAFTED_FEATURE_PATH,
        "variable_batch_size": True,
    }

    loss, ap = test_model(**test_args)
    print("Test loss: {0:.5f} AP: {1:.4f}".format(loss, ap))
    all_aps.append(ap)
print("MEAN AP:", np.round(np.mean(all_aps), 3) * 100)
Exemplo n.º 2
0
            "loss_function": loss_function,
            "debug_mode": DEBUG_MODE,
        }

        loss, ap = train_model(**trainer_args)
        print("Train loss: {0:.5f} AP: {1:.4f}".format(loss, ap))

        val_args = {
            "model": model,
            "device": DEVICE,
            "test_loader": val_loader,
            "loss_function": loss_function,
            "debug_mode": DEBUG_MODE,
        }

        loss, ap = test_model(**val_args)
        print("Validation loss: {0:.5f} AP: {1:.4f}".format(loss, ap))

        if ap > best_ap:
            best_ap = ap
            best_model = copy.deepcopy(model)
            model_save_name = "fold_" + str(fold) + ".weights"
            torch.save(best_model.state_dict(),
                       os.path.join(MODEL_SAVE_PATH, model_save_name))

    test_args = {
        "model": best_model,
        "device": DEVICE,
        "test_loader": test_loader,
        "loss_function": loss_function,
        "debug_mode": False,