X-Git-Url: https://fleuret.org/cgi-bin/gitweb/gitweb.cgi?a=blobdiff_plain;f=main.py;h=5506bbd110edfa0536cbaab1f5472705419ac973;hb=27dd45177a8552a8b8c9e3a4d9388844fa1d4d27;hp=efcc0ddd20c248335aff7acbc2f1d5caa04d607c;hpb=d6ce421535abe92b66811d3a91f8ba53cd8632a1;p=picoclvr.git diff --git a/main.py b/main.py index efcc0dd..5506bbd 100755 --- a/main.py +++ b/main.py @@ -5,9 +5,6 @@ # Written by Francois Fleuret -# torch.backends.cuda.matmul.allow_tf23 -# torch.autocast(torch.bfloat16) - import math, sys, argparse, time, tqdm, os import torch, torchvision @@ -36,7 +33,7 @@ parser.add_argument( "--task", type=str, default="sandbox", - help="sandbox, picoclvr, mnist, maze, snake, stack, expr, world", + help="sandbox, picoclvr, mnist, maze, snake, stack, expr, rpl, world", ) parser.add_argument("--log_filename", type=str, default="train.log", help=" ") @@ -82,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) @@ -206,6 +216,12 @@ default_task_args = { "nb_train_samples": 1000000, "nb_test_samples": 10000, }, + "rpl": { + "nb_epochs": 40, + "batch_size": 25, + "nb_train_samples": 100000, + "nb_test_samples": 10000, + }, "world": { "nb_epochs": 10, "batch_size": 25, @@ -419,6 +435,20 @@ elif args.task == "expr": device=device, ) +elif args.task == "rpl": + task = tasks.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, + ) + elif args.task == "world": task = tasks.World( nb_train_samples=args.nb_train_samples,