X-Git-Url: https://fleuret.org/cgi-bin/gitweb/gitweb.cgi?a=blobdiff_plain;f=main.py;h=b9b52d6e18162292f09394de9d9150edf281a9f3;hb=6c8bed86221baae24a7c2aaaa41c009444efb5c9;hp=71026c59640be3752f3a311dc6f58cbcf49b11d1;hpb=5d46a9bd7d032d90ef4c4b38ac3c9b5b66526527;p=picoclvr.git diff --git a/main.py b/main.py index 71026c5..b9b52d6 100755 --- a/main.py +++ b/main.py @@ -12,7 +12,7 @@ from torch import nn from torch.nn import functional as F import ffutils -import mygpt, tasks +import mygpt, tasks, problems ###################################################################### @@ -79,7 +79,20 @@ parser.add_argument("--overwrite_results", action="store_true", default=False) parser.add_argument("--checkpoint_name", type=str, default="checkpoint.pth") ############################## -# picoclvr options +# rpl options + +parser.add_argument("--rpl_nb_starting_values", type=int, default=5) + +parser.add_argument("--rpl_max_input", type=int, default=9) + +parser.add_argument("--rpl_prog_len", type=int, default=10) + +parser.add_argument("--rpl_nb_runs", type=int, default=8) + +parser.add_argument("--rpl_no_prog", action="store_true", default=False) + +############################## +# sandbox options parser.add_argument("--sandbox_level", type=int, default=0) @@ -322,19 +335,19 @@ picoclvr_pruner_eval = ( if args.task == "sandbox": if args.sandbox_level == 0: - problem = tasks.ProblemLevel0( + problem = problems.ProblemLevel0( nb_sentences=args.sandbox_levels_nb_items, len_prompt=args.sandbox_levels_len_source, len_result=args.sandbox_levels_len_result, ) elif args.sandbox_level == 1: - problem = tasks.ProblemLevel1( + problem = problems.ProblemLevel1( nb_operators=args.sandbox_levels_nb_items, len_source=args.sandbox_levels_len_source, len_result=args.sandbox_levels_len_result, ) elif args.sandbox_level == 2: - problem = tasks.ProblemLevel2( + problem = problems.ProblemLevel2( len_source=args.sandbox_levels_len_source, len_result=args.sandbox_levels_len_result, ) @@ -342,8 +355,9 @@ if args.task == "sandbox": raise ValueError(f"Unknown sandbox level {args.sandbox_level}") task = tasks.SandBox( - problem, - # tasks.ProblemAddition(zero_padded=False, inverted_result=False), + # problem, + # problems.ProblemAddition(zero_padded=False, inverted_result=False), + problems.ProblemLenId(len_max=args.sandbox_levels_len_source), nb_train_samples=args.nb_train_samples, nb_test_samples=args.nb_test_samples, batch_size=args.batch_size, @@ -427,6 +441,11 @@ elif args.task == "rpl": nb_train_samples=args.nb_train_samples, nb_test_samples=args.nb_test_samples, batch_size=args.batch_size, + nb_starting_values=args.rpl_nb_starting_values, + max_input=args.rpl_max_input, + prog_len=args.rpl_prog_len, + nb_runs=args.rpl_nb_runs, + no_prog=args.rpl_no_prog, logger=log_string, device=device, ) @@ -500,12 +519,12 @@ else: if args.task == "expr" and args.expr_input_file is not None: task.produce_results( - nb_epochs_finished, - model, - args.result_dir, - log_string, - args.deterministic_synthesis, - args.expr_input_file, + n_epoch=nb_epochs_finished, + model=model, + result_dir=args.result_dir, + logger=log_string, + deterministic_synthesis=args.deterministic_synthesis, + input_file=args.expr_input_file, ) exit(0) @@ -581,11 +600,11 @@ nb_samples_seen = 0 if nb_epochs_finished >= nb_epochs: task.produce_results( - nb_epochs_finished, - model, - args.result_dir, - log_string, - args.deterministic_synthesis, + n_epoch=nb_epochs_finished, + model=model, + result_dir=args.result_dir, + logger=log_string, + deterministic_synthesis=args.deterministic_synthesis, ) for n_epoch in range(nb_epochs_finished, nb_epochs): @@ -639,7 +658,11 @@ for n_epoch in range(nb_epochs_finished, nb_epochs): ) task.produce_results( - n_epoch, model, args.result_dir, log_string, args.deterministic_synthesis + n_epoch=n_epoch, + model=model, + result_dir=args.result_dir, + logger=log_string, + deterministic_synthesis=args.deterministic_synthesis, ) checkpoint = {