in src/args.py [0:0]
def get_parser():
parser = argparse.ArgumentParser()
parser.add_argument(
'--save_dir', type=str, default='checkpoints', help='Directory for saving the models')
parser.add_argument(
'--experiment_name',
type=str,
default='experiment',
help='Specifies the sub directory for saving the models. The full path will be '
'<save_dir>/<dataset>/<model_name>/<experiment_name>.')
parser.add_argument(
'--dataset',
type=str,
default='voc',
choices=['coco', 'voc', 'nuswide', 'ade20k', 'recipe1m'])
parser.add_argument(
'--model_name',
type=str,
default='ff_bce',
choices=[
'ff_bce', 'ff_iou', 'ff_td', 'ff_bce_dc', 'ff_bce_cat', 'ff_iou_cat', 'ff_td_cat', 'tf',
'tf_shuffle', 'tfset', 'lstm', 'lstm_shuffle', 'lstmset'
])
# Model parameters
parser.add_argument(
'--image_model',
type=str,
default='resnet50',
choices=['resnet50', 'resnet101', 'resnext101_32x8d'])
parser.add_argument('--embed_size', type=int, default=512)
parser.add_argument('--n_att', type=int, default=2)
parser.add_argument('--tf_layers', type=int, default=1)
parser.add_argument('--ff_layers', type=int, default=1)
parser.add_argument(
'--crop_size', type=int, default=448, help='size for randomly cropping images')
parser.add_argument('--image_size', type=int, default=448)
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)
parser.add_argument('--scale_learning_rate_cnn', type=float, default=0.01)
parser.add_argument('--lr_decay_rate', type=float, default=0.99)
parser.add_argument('--lr_decay_every', type=int, default=1)
parser.add_argument('--weight_decay', type=float, default=0.)
parser.add_argument('--U', type=float, default=2.36)
parser.add_argument('--seed', type=int, default=1235)
parser.add_argument('--dropout_encoder', type=float, default=0.0)
parser.add_argument('--dropout_decoder', type=float, default=0.0)
parser.add_argument('--num_epochs', type=int, default=400)
parser.add_argument('--batch_size', type=int, default=128)
parser.add_argument('--num_workers', type=int, default=8)
parser.add_argument('--patience', type=int, default=50)
parser.add_argument('--maxnumlabels', type=int, default=10)
parser.add_argument('--finetune_after', type=int, default=0)
parser.add_argument('--loss_weight', nargs='+', type=float, default=[1.0, 1.0, 0.0])
parser.add_argument('--th', type=float, default=0.5)
parser.add_argument(
'--metric_to_checkpoint',
type=str,
default='o_f1',
choices=['o_f1', 'c_f1', 'i_f1', 'average'])
# Flags
parser.add_argument('--notensorboard', dest='tensorboard', action='store_false')
parser.set_defaults(tensorboard=True)
parser.add_argument('--resume', dest='resume', action='store_true')
parser.set_defaults(resume=False)
parser.add_argument('--nodecay_lr', dest='decay_lr', action='store_false')
parser.set_defaults(decay_lr=True)
parser.add_argument('--use_json_config', dest='use_json_config', action='store_true')
parser.set_defaults(use_json_config=False)
args = parser.parse_args()
# If we are using configuration file, overwrite command line arguments
if args.use_json_config:
filename = os.path.join('../configs/', args.dataset, args.image_model + '_' + args.model_name + '.json')
args = get_args_from_json(args, filename)
args = set_flags_for_model(args)
return args