コード例 #1
0
def main(_):
    os.environ['CUDA_VISIBLE_DEVICES'] = FLAGS.gpu_index

    solver = Solver(FLAGS)
    if FLAGS.is_train:
        solver.train()
    else:
        solver.test()
コード例 #2
0
ファイル: main.py プロジェクト: jun2tong/GPDA
def main():
    # make a string that describes the current running setup
    num = 0
    run_setup_str = f"{args.source}2{args.target}_k_{args.num_k}_kq_{args.num_kq}_lamb_{args.lamb_marg_loss}"

    while os.path.exists(f"record/{run_setup_str}_run_{num}.txt"):
        num += 1
    run_setup_str = f"{run_setup_str}_run_{num}"
    # eg, svhn2mnist_k_4_kq_4_lamb_10.0_run_5

    # set file names for records (storing training stats)
    record_train = f"record/{run_setup_str}.txt"
    record_test = f"record/{run_setup_str}_test.txt"
    if not os.path.exists('record'):
        os.mkdir('record')  # create a folder for records if not exist

    # set the checkpoint dir name (storing model params)
    checkpoint_dir = f'checkpoint/{run_setup_str}'
    if not os.path.exists('checkpoint'):
        os.mkdir('checkpoint')  # create a folder if not exist
    if not os.path.exists(checkpoint_dir):
        os.mkdir(checkpoint_dir)  # create a folder if not exist

    ####

    # create a solver: load data, create models (or load existing models),
    #   and create optimizers
    solver = Solver(args,
                    source=args.source,
                    target=args.target,
                    nsamps_q=args.nsamps_q,
                    lamb_marg_loss=args.lamb_marg_loss,
                    learning_rate=args.lr,
                    batch_size=args.batch_size,
                    optimizer=args.optimizer,
                    num_k=args.num_k,
                    num_kq=args.num_kq,
                    all_use=args.all_use,
                    checkpoint_dir=checkpoint_dir,
                    save_epoch=args.save_epoch)

    # run it (test or training)
    if args.eval_only:
        solver.test(0)
    else:  # training
        count = 0
        for t in range(args.max_epoch):
            num = solver.train(t, record_file=record_train)
            count += num
            if t % 1 == 0:  # run it on test data every epoch (and save models)
                solver.test(t,
                            record_file=record_test,
                            save_model=args.save_model)
            if count >= 20000 * 10:
                break
コード例 #3
0
def main(config):
    os.environ["CUDA_VISIBLE_DEVICES"] = str(config["gpu_no"])

    save_path = Path(config["training"]["save_path"])
    save_path.mkdir(parents=True, exist_ok=True)

    mode = config["mode"]
    solver = Solver(config)

    if mode == "train":
        solver.train()
    if mode == "test":
        solver.test()
コード例 #4
0
def main(config):
    os.environ["CUDA_VISIBLE_DEVICES"] = str(config["gpu_no"])

    mode = config["mode"]

    save_path = Path(config["training"]["save_path"]) / config["version"]
    save_path.mkdir(parents=True, exist_ok=True)
    config["save_path"] = save_path

    datasets = DataLoader(mode, **config["dataset"])
    solver = Solver(config, datasets)

    if mode == "train":
        solver.train()
    if mode == "test":
        solver.test()