import argparse def get_parser(parser=None): if parser is None: parser = argparse.ArgumentParser() # Model # model_arg = parser.add_argument_group('Model') parser.add_argument("--n_head", type=int, default=8, help="GPT number of heads") parser.add_argument("--n_layer", type=int, default=12, help="GPT number of layers") parser.add_argument( "--q_dropout", type=float, default=0.5, help="Encoder layers dropout" ) parser.add_argument( "--d_dropout", type=float, default=0.1, help="Decoder layers dropout" ) parser.add_argument( "--n_embd", type=int, default=768, help="Latent vector dimensionality" ) parser.add_argument( "--fc_h", type=int, default=512, help="Fully connected hidden dimensionality" ) parser.add_argument("--n_output", type=int, default=1) # Train # train_arg = parser.add_argument_group('Train') parser.add_argument("--n_batch", type=int, default=512, help="Batch size") parser.add_argument( "--unlike_alpha", type=float, default=1.0, help="unlikelihood loss alpha weight" ) parser.add_argument( "--from_scratch", action="store_true", default=False, help="train on qm9 from scratch", ) parser.add_argument( "--unlikelihood", action="store_true", default=False, help="use unlikelihood loss with gpt pretrain", ) parser.add_argument( "--grad_acc", type=int, default=1, help="number of batches to accumulate gradients", ) parser.add_argument( "--checkpoint_every", type=int, default=1000, help="save checkpoint every x iterations", ) parser.add_argument( "--clip_grad", type=int, default=50, help="Clip gradients to this value" ) parser.add_argument( "--lr_start", type=float, default=3 * 1e-4, help="Initial lr value" ) parser.add_argument( "--lr_end", type=float, default=3 * 1e-4, help="Maximum lr weight value" ) parser.add_argument( "--lr_multiplier", type=int, default=1, help="lr weight multiplier" ) parser.add_argument( "--n_last", type=int, default=1000, help="Number of iters to smooth loss calc" ) parser.add_argument("--n_jobs", type=int, default=1, help="Number of threads") parser.add_argument( "--accelerator", type=str, default="ddp", help="The accelerator backend to use (previously known as distributed_backend)", ) parser.add_argument( "--num_nodes", type=int, default=1, help="number of GPU nodes for distributed training", ) parser.add_argument( "--device", type=str, default="cuda", help='Device to run: "cpu" or "cuda:"', ) parser.add_argument("--seed", type=int, default=12345, help="Seed") parser.add_argument( "--init_params_from", type=str, default="", help="Path to a ckpt used to initialize the parameters if no restart_path is provided", ) parser.add_argument( "--train_decoder_every", type=int, default=10, help="Optimize decoder params every n batches", ) parser.add_argument( "--lr_decoder", type=float, default=1e-4, help="Learning rate for decoder part" ) parser.add_argument( "--local_rank", type=int, default=-1, help="local_rank for distributed training on gpus", ) parser.add_argument("--gpu", default=None, type=int, help="GPU id to use.") parser.add_argument( "--dist-backend", default="nccl", type=str, help="distributed backend" ) parser.add_argument( "--tensorboard_path", default="./runs/deepspeed", help="tensorboard log dir" ) # common_arg = parser.add_argument_group('Common') parser.add_argument( "--vocab_load", type=str, required=False, help="Where to load the vocab" ) parser.add_argument( "--n_samples", type=int, required=False, help="Number of samples to sample" ) parser.add_argument( "--gen_save", type=str, required=False, help="Where to save the gen molecules" ) parser.add_argument( "--max_len", type=int, default=100, help="Max of length of SMILES" ) parser.add_argument( "--train_load", type=str, required=False, help="Where to load the model" ) parser.add_argument( "--val_load", type=str, required=False, help="Where to load the model" ) parser.add_argument( "--n_workers", type=int, required=False, default=1, help="Where to load the model", ) # beam search hyper parameters parser.add_argument( "--beam_size", type=int, default=0, help="Number of beams to generate" ) parser.add_argument( "--num_seq_returned", type=int, default=0, help="number of beams to be returned (must be <= beam_size", ) parser.add_argument( "--min_len", type=int, default=1, help="minimum length to be generated" ) parser.add_argument( "--nucleus_thresh", type=float, default=0.9, help="nucleus sampling threshold" ) parser.add_argument( "--finetune_path", type=str, default="", help="path to trainer file to continue training", ) parser.add_argument( "--restart_path", type=str, default="", help="path to trainer file to continue training", ) parser.add_argument( "--data_path", type=str, default="", help="path to pubchem file" ) parser.add_argument( "--pretext_size", type=int, default=0, help="number of k-mers to pretext" ) parser.add_argument( "--model_save_dir", type=str, required=False, default="./models_dump/", help="Where to save the models/log/config/vocab", ) parser.add_argument( "--model_save", type=str, required=False, default="model.pt", help="Where to save the model", ) # parser.add_argument('--save_frequency', # type=int, default=20, # help='How often to save the model') parser.add_argument( "--num_epoch", type=int, default=1, help="number of epochs to train" ) # parser.add_argument('--num_iter', # type=int, default=-1, # help='how many itersations per epoch (for unlikelihood tuning)') parser.add_argument( "--log_file", type=str, required=False, help="Where to save the log" ) parser.add_argument( "--tb_loc", type=str, required=False, help="Where to save the tensorflow location", ) parser.add_argument( "--config_save", type=str, required=False, help="Where to save the config" ) parser.add_argument("--vocab_save", type=str, help="Where to save the vocab") # resume_arg = parser.add_argument_group('Resume') parser.add_argument( "--debug", default=False, action="store_true", help="do not erase cache at end of program", ) parser.add_argument( "--fast_dev_run", default=False, help="This flag runs a “unit test” by running n if set to n (int) else 1 if set to True training and validation batch(es).", ) parser.add_argument( "--freeze_model", default=False, action="store_true", help="freeze weights of bert model during fine tuning", ) parser.add_argument( "--resume", default=False, action="store_true", help="Resume from a saved model" ) parser.add_argument( "--rotate", default=False, action="store_true", help="use rotational relative embedding", ) parser.add_argument( "--model_load", type=str, required=False, help="Where to load the model" ) parser.add_argument( "--root_dir", type=str, required=False, default=".", help="location of root dir" ) parser.add_argument( "--config_load", type=str, required=False, help="Where to load the config" ) parser.add_argument( "--gpus", type=int, required=False, default=1, help="number of gpus to use" ) # parser.add_argument('--start_epoch', # type=int, required=False, default=0, # help='Where to load the config') parser.add_argument( "--model_arch", type=str, required=False, help="used to teack model arch in params", ) parser.add_argument( "--eval_every", type=int, default=50000, help="run evaluation every x iterations", ) parser.add_argument( "--num_feats", type=int, required=False, default=32, help="number of random reatures for FAVOR+", ) parser.add_argument( "--max_epochs", type=int, required=False, default=1, help="max number of epochs" ) # debug() FINE TUNEING # parser.add_argument('--save_dir', type=str, required=True) parser.add_argument( "--mode", type=str, default="cls", help="type of pooling to use" ) parser.add_argument("--dataset_length", type=int, default=None, required=False) parser.add_argument("--num_workers", type=int, default=0, required=False) parser.add_argument("--dropout", type=float, default=0.1, required=False) # parser.add_argument("--dims", type=int, nargs="*", default="", required=False) parser.add_argument( "--smiles_embedding", type=str, default="/dccstor/medscan7/smallmolecule/runs/ba-predictor/small-data/embeddings/protein/ba_embeddings_tanh_512_2986138_2.pt", ) # parser.add_argument("--train_pct", type=str, required=False, default="95") # parser.add_argument("--aug", type=int, required=True) parser.add_argument("--dataset_name", type=str, required=False, default="sol") parser.add_argument("--measure_name", type=str, required=False, default="measure") # parser.add_argument("--emb_type", type=str, required=True) parser.add_argument("--checkpoints_folder", type=str, required=True) # parser.add_argument("--results_dir", type=str, required=True) # parser.add_argument("--patience_epochs", type=int, required=True) parser.add_argument("--model_path", type=str, default="./smi_ted/") parser.add_argument("--ckpt_filename", type=str, default="smi_ted_Light_40.pt") # parser.add_argument('--n_output', type=int, default=1) parser.add_argument("--save_every_epoch", type=int, default=0) parser.add_argument("--save_ckpt", type=int, default=1) parser.add_argument("--start_seed", type=int, default=0) parser.add_argument("--smi_ted_version", type=str, default="v1") parser.add_argument("--train_decoder", type=int, default=1) parser.add_argument("--target_metric", type=str, default="rmse") parser.add_argument("--loss_fn", type=str, default="mae") parser.add_argument( "--data_root", type=str, required=False, default="/dccstor/medscan7/smallmolecule/runs/ba-predictor/small-data/affinity", ) # parser.add_argument("--use_bn", type=int, default=0) parser.add_argument("--use_linear", type=int, default=0) parser.add_argument("--lr", type=float, default=0.001) # parser.add_argument("--weight_decay", type=float, default=5e-4) # parser.add_argument("--val_check_interval", type=float, default=1.0) parser.add_argument("--batch_size", type=int, default=64) return parser def parse_args(): parser = get_parser() args = parser.parse_args() return args