Spaces:
Configuration error
Configuration error
File size: 7,888 Bytes
2a3a041 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 |
# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
import argparse
import os
def get_parser():
parser = argparse.ArgumentParser()
parser.add_argument('--save_dir', type=str, default='path/to/save/models',
help='path where checkpoints will be saved')
parser.add_argument('--project_name', type=str, default='inversecooking',
help='name of the directory where models will be saved within save_dir')
parser.add_argument('--model_name', type=str, default='model',
help='save_dir/project_name/model_name will be the path where logs and checkpoints are stored')
parser.add_argument('--transfer_from', type=str, default='',
help='specify model name to transfer from')
parser.add_argument('--suff', type=str, default='',
help='the id of the dictionary to load for training')
parser.add_argument('--image_model', type=str, default='resnet50', choices=['resnet18', 'resnet50', 'resnet101',
'resnet152', 'inception_v3'])
parser.add_argument('--recipe1m_dir', type=str, default='path/to/recipe1m',
help='directory where recipe1m dataset is extracted')
parser.add_argument('--aux_data_dir', type=str, default='../data',
help='path to other necessary data files (eg. vocabularies)')
parser.add_argument('--crop_size', type=int, default=224, help='size for randomly or center cropping images')
parser.add_argument('--image_size', type=int, default=256, help='size to rescale images')
parser.add_argument('--log_step', type=int , default=10, help='step size for printing log info')
parser.add_argument('--learning_rate', type=float, default=0.001,
help='base learning rate')
parser.add_argument('--scale_learning_rate_cnn', type=float, default=0.01,
help='lr multiplier for cnn weights')
parser.add_argument('--lr_decay_rate', type=float, default=0.99,
help='learning rate decay factor')
parser.add_argument('--lr_decay_every', type=int, default=1,
help='frequency of learning rate decay (default is every epoch)')
parser.add_argument('--weight_decay', type=float, default=0.)
parser.add_argument('--embed_size', type=int, default=512,
help='hidden size for all projections')
parser.add_argument('--n_att', type=int, default=8,
help='number of attention heads in the instruction decoder')
parser.add_argument('--n_att_ingrs', type=int, default=4,
help='number of attention heads in the ingredient decoder')
parser.add_argument('--transf_layers', type=int, default=16,
help='number of transformer layers in the instruction decoder')
parser.add_argument('--transf_layers_ingrs', type=int, default=4,
help='number of transformer layers in the ingredient decoder')
parser.add_argument('--num_epochs', type=int, default=400,
help='maximum number of epochs')
parser.add_argument('--batch_size', type=int, default=128)
parser.add_argument('--num_workers', type=int, default=8)
parser.add_argument('--dropout_encoder', type=float, default=0.3,
help='dropout ratio for the image and ingredient encoders')
parser.add_argument('--dropout_decoder_r', type=float, default=0.3,
help='dropout ratio in the instruction decoder')
parser.add_argument('--dropout_decoder_i', type=float, default=0.3,
help='dropout ratio in the ingredient decoder')
parser.add_argument('--finetune_after', type=int, default=-1,
help='epoch to start training cnn. -1 is never, 0 is from the beginning')
parser.add_argument('--loss_weight', nargs='+', type=float, default=[1.0, 0.0, 0.0, 0.0],
help='training loss weights. 1) instruction, 2) ingredient, 3) eos 4) cardinality')
parser.add_argument('--max_eval', type=int, default=4096,
help='number of validation samples to evaluate during training')
parser.add_argument('--label_smoothing_ingr', type=float, default=0.1,
help='label smoothing for bce loss for ingredients')
parser.add_argument('--patience', type=int, default=50,
help='maximum number of epochs to allow before early stopping')
parser.add_argument('--maxseqlen', type=int, default=15,
help='maximum length of each instruction')
parser.add_argument('--maxnuminstrs', type=int, default=10,
help='maximum number of instructions')
parser.add_argument('--maxnumims', type=int, default=5,
help='maximum number of images per sample')
parser.add_argument('--maxnumlabels', type=int, default=20,
help='maximum number of ingredients per sample')
parser.add_argument('--es_metric', type=str, default='loss', choices=['loss', 'iou_sample'],
help='early stopping metric to track')
parser.add_argument('--eval_split', type=str, default='val')
parser.add_argument('--numgens', type=int, default=3)
parser.add_argument('--greedy', dest='greedy', action='store_true',
help='enables greedy sampling (inference only)')
parser.set_defaults(greedy=False)
parser.add_argument('--temperature', type=float, default=1.0,
help='sampling temperature (when greedy is False)')
parser.add_argument('--beam', type=int, default=-1,
help='beam size. -1 means no beam search (either greedy or sampling)')
parser.add_argument('--ingrs_only', dest='ingrs_only', action='store_true',
help='train or evaluate the model only for ingredient prediction')
parser.set_defaults(ingrs_only=False)
parser.add_argument('--recipe_only', dest='recipe_only', action='store_true',
help='train or evaluate the model only for instruction generation')
parser.set_defaults(recipe_only=False)
parser.add_argument('--log_term', dest='log_term', action='store_true',
help='if used, shows training log in stdout instead of saving it to a file.')
parser.set_defaults(log_term=False)
parser.add_argument('--notensorboard', dest='tensorboard', action='store_false',
help='if used, tensorboard logs will not be saved')
parser.set_defaults(tensorboard=True)
parser.add_argument('--resume', dest='resume', action='store_true',
help='resume training from the checkpoint in model_name')
parser.set_defaults(resume=False)
parser.add_argument('--nodecay_lr', dest='decay_lr', action='store_false',
help='disables learning rate decay')
parser.set_defaults(decay_lr=True)
parser.add_argument('--load_jpeg', dest='use_lmdb', action='store_false',
help='if used, images are loaded from jpg files instead of lmdb')
parser.set_defaults(use_lmdb=True)
parser.add_argument('--get_perplexity', dest='get_perplexity', action='store_true',
help='used to get perplexity in evaluation')
parser.set_defaults(get_perplexity=False)
parser.add_argument('--use_true_ingrs', dest='use_true_ingrs', action='store_true',
help='if used, true ingredients will be used as input to obtain the recipe in evaluation')
parser.set_defaults(use_true_ingrs=False)
args = parser.parse_args()
return args
|