Exemplo n.º 1
0
def main():
    parser = argparse.ArgumentParser()
    arg = parser.add_argument
    arg("--model",
        type=str,
        default="se_resnext101_dr0.75_512",
        help="String model name from models dictionary")
    arg("--seed", type=int, default=1234, help="Random seed")
    arg("--fold", type=int, default=0, help="Validation fold")
    arg("--checkpoints_dir",
        type=str,
        default="../../checkpoints",
        help="Directory for loading model weights")
    arg("--from-epoch", type=int, default=1, help="Resume training from epoch")
    arg("--to-epochs", type=int, default=15, help="Number of epochs to run")
    arg("--debug", type=bool, default=False, help="If the debugging mode")
    args = parser.parse_args()

    set_seed(args.seed)

    weights = f"{args.checkpoints_dir}/{args.model}_fold_{args.fold}/"

    predict_test(model_name=args.model,
                 fold=args.fold,
                 debug=args.debug,
                 checkpoints_dir=weights,
                 save_oof=True,
                 img_size=IMG_SIZE,
                 from_epoch=0,
                 to_epoch=10)
Exemplo n.º 2
0
def main():
    parser = argparse.ArgumentParser()
    arg = parser.add_argument
    arg("--model-name",
        type=str,
        default="resnet101_512",
        help="String model name from models dictionary")
    arg("--seed", type=int, default=1234, help="Random seed")
    arg("--fold", type=int, default=0, help="Validation fold")
    args = parser.parse_args()

    set_seed(args.seed)

    model_names = [
        "se_resnext101_dr0.75_512",
        "se_resnext101_dr_512",
        "se_resnext101_dr_512_without_pretrained",
        "se_resnext50_512_dr0.8",
        "se_resnext50_512",
        "resnet101_512",
        "resnet50_512",
    ]

    thresholds = [
        0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55, 0.6, 0.65,
        0.7, 0.75, 0.8, 0.9, 1.0
    ]

    get_metrics(RESULTS_DIR,
                model_name=args.model_name,
                fold=args.fold,
                epochs=19,
                thresholds=thresholds,
                save_metrics=True)
Exemplo n.º 3
0
def main():
    parser = argparse.ArgumentParser()
    arg = parser.add_argument
    arg("--seed", type=int, default=1234, help="Random seed")
    arg("--fold", type=int, default=0, help="Validation fold")
    arg("--output_dir",
        type=str,
        default="../../output",
        help="Directory for loading results")
    arg("--save-pics", type=bool, default=True)
    arg("--debug", type=bool, default=False, help="If the debugging mode")
    args = parser.parse_args()
    set_seed(args.seed)

    RESULTS_DIR = "../../../../output/"

    model_names = [
        "se_resnext101_dr0.75_512",
        "se_resnext101_dr_512",
        "se_resnext101_512",
        "se_resnext50_512_dr0.8",
        "se_resnext50_512",
        "resnet101_512",
        "inc_resnet_v2_512",
    ]
    labels = model_names

    model = model_names[0]
    all_scores, thresholds, epochs = load_scores(model_name=model,
                                                 fold=args.fold,
                                                 output_dir=RESULTS_DIR)

    scores_heatmap(all_scores, thresholds, epochs, model, RESULTS_DIR)
    # plot_best_scores(all_scores, thresholds, epochs,
    #                 model_name=model, output_dir = RESULTS_DIR, if_save=False)

    map_2d(all_scores, thresholds, epochs, model, RESULTS_DIR, if_save=False)

    plot_score(all_scores,
               thresholds,
               epochs,
               output_dir=RESULTS_DIR,
               model_name=model,
               if_save=True)

    plot_scores(all_scores,
                thresholds,
                epochs,
                model_names,
                labels,
                RESULTS_DIR,
                if_save=True)
Exemplo n.º 4
0
def main():
    parser = argparse.ArgumentParser()
    arg = parser.add_argument
    arg("--action",
        type=str,
        default="train",
        help=
        "Choose action: train, test_model, check_metric, generate_predictions")
    arg("--model",
        type=str,
        default="se_resnext101_dr0.75_512",
        help="String model name from models dictionary")
    arg("--run",
        type=str,
        default="",
        help="Experiment id string to be added for saving model")
    arg("--seed", type=int, default=1234, help="Random seed")
    arg("--fold", type=int, default=0, help="Validation fold")
    arg("--weights_dir",
        type=str,
        default="../../checkpoints",
        help="Directory for loading model weights")
    arg("--epoch", type=int, default=12, help="Current epoch")
    arg("--from-epoch", type=int, default=2, help="Resume training from epoch")
    arg("--num-epochs", type=int, default=20, help="Number of epochs to run")
    arg("--batch-size", type=int, default=4, help="Batch size for training")
    arg("--learning-rate",
        type=float,
        default=1e-5,
        help="Initial learning rate")
    arg("--debug", type=bool, default=False, help="If the debugging mode")
    args = parser.parse_args()

    set_seed(args.seed)

    if args.action == "train":
        train(
            model_name=args.model,
            run=args.run,
            fold=args.fold,
            debug=args.debug,
            epochs=args.num_epochs,
        )

    if args.action == "test_model":
        run_str = "" if args.run is None or args.run == "" else f"_{args.run}"
        weights = (
            f"{WEIGHTS_DIR}/{args.model}{run_str}_fold_{args.fold}/{args.model}_{args.epoch:03}.pt"
        )
        test_model(
            model_name=args.model,
            fold=args.fold,
            debug=args.debug,
            checkpoint=weights,
            pics_dir=f"{RESULTS_DIR}/pics",
        )

    if args.action == "check_metric":
        all_scores, thresholds, epochs = check_metric(
            model_name=args.model,
            run=args.run,
            fold=args.fold,
            oof_dir=f"{RESULTS_DIR}/oof",
            start_epoch=1,
            end_epoch=15,
            save_metrics=True,
        )

    if args.action == "generate_predictions":
        generate_predictions(
            model_name=args.model,
            run=args.run,
            fold=args.fold,
            weights_dir=WEIGHTS_DIR,
            debug=args.debug,
            from_epoch=args.from_epoch,
            to_epoch=args.num_epochs + 1,
            save_oof=True,
        )