def main()

in experiment_configs/imagenet/ensembles/eval_ensembles.py [0:0]


def main():
    train_epochs = 200
    args.label_noise = 0.0

    # TODO: change these paths -- this is an example.
    args.data = "~/data"
    args.log_dir = "learning-subspaces-results/imagenet/eval-ensemble"

    if not os.path.exists(args.log_dir):
        os.makedirs(args.log_dir)

    for num_models in [1, 2, 3]:

        to_try = samples(3, num_models)

        for seed in range(len(to_try)):

            next_try = to_try.pop()

            args.seed = seed
            args.workers = 24
            args.wd = 0.00005
            args.batch_size = 256
            args.test_batch_size = 256
            args.output_size = 1000
            args.set = "ImageNet"
            args.multigpu = [0, 1, 2, 3]
            args.model = "WideResNet50_2"
            args.conv_type = "StandardConv"
            args.bn_type = "StandardBN"
            args.conv_init = "kaiming_normal"
            args.trainer = "ensemble"
            args.epochs = 0
            args.resume = [
                f"learning-subspaces-results/imagenet/train-ensemble-members/"
                f"id=base+ln={args.label_noise}+seed={c}"
                f"+try=0/epoch_{train_epochs}_iter_{train_epochs * 5005}.pt"
                for c in next_try
            ]
            args.num_models = len(args.resume)
            args.name = (
                f"id=ensmeble+ln={args.label_noise}+epochs={train_epochs}"
                f"+num_models={args.num_models}+seed={seed}"
            )

            args.save = False
            args.save_data = True
            args.pretrained = True

            run()