报错来源
当我参见【中国软件开源创新大赛:开源任务挑战赛(顶会论文复现赛)】时,在jupyter中使用from option import args
,如下为option.py
内容
import argparse
parser = argparse.ArgumentParser(description='MGN')
parser.add_argument('--nThread', type=int, default=2, help='number of threads for data loading')
parser.add_argument('--cpu', action='store_true', help='use cpu only')
parser.add_argument('--nGPU', type=int, default=1, help='number of GPUs')
parser.add_argument("--datadir", type=str, default="Market-1501-v15.09.15", help='dataset directory')
parser.add_argument('--data_train', type=str, default='Market1501', help='train dataset name')
parser.add_argument('--data_test', type=str, default='Market1501', help='test dataset name')
parser.add_argument('--reset', action='store_true', help='reset the training')
parser.add_argument("--epochs", type=int, default=80, help='number of epochs to train')
parser.add_argument('--test_every', type=int, default=20, help='do test per every N epochs')
parser.add_argument("--batchid", type=int, default=16, help='the batch for id')
parser.add_argument("--batchimage", type=int, default=4, help='the batch of per id')
parser.add_argument("--batchtest", type=int, default=32, help='input batch size for test')
parser.add_argument('--test_only', action='store_true', help='set this option to test the model')
parser.add_argument('--model', default='MGN', help='model name')
parser.add_argument('--loss', type=str, default='1*CrossEntropy+1*Triplet', help='loss function configuration')
parser.add_argument('--act', type=str, default='relu', help='activation function')
parser.add_argument('--pool', type=str, default='avg', help='pool function')
parser.add_argument('--feats', type=int, default=256, help='number of feature maps')
parser.add_argument('--height', type=int, default=384, help='height of the input image')
parser.add_argument('--width', type=int, default=128, help='width of the input image')
parser.add_argument('--num_classes', type=int, default=751, help='')
parser.add_argument("--lr", type=float, default=2e-4, help='learning rate')
parser.add_argument('--optimizer', default='ADAM', choices=('SGD','ADAM','NADAM','RMSprop'), help='optimizer to use (SGD | ADAM | NADAM | RMSprop)')
parser.add_argument('--momentum', type=float, default=0.9, help='SGD momentum')
parser.add_argument('--dampening', type=float, default=0, help='SGD dampening')
parser.add_argument('--nesterov', action='store_true', help='SGD nesterov')
parser.add_argument('--beta1', type=float, default=0.9, help='ADAM beta1')
parser.add_argument('--beta2', type=float, default=0.999, help='ADAM beta2')
parser.add_argument('--amsgrad', action='store_true', help='ADAM amsgrad')
parser.add_argument('--epsilon', type=float, default=1e-8, help='ADAM epsilon for numerical stability')
parser.add_argument('--gamma', type=float, default=0.1, help='learning rate decay factor for step decay')
parser.add_argument('--weight_decay', type=float, default=5e-4, help='weight decay')
parser.add_argument('--decay_type', type=str, default='step', help='learning rate decay type')
parser.add_argument('--lr_decay', type=int, default=60, help='learning rate decay per N epochs')
parser.add_argument("--margin", type=float, default=1.2, help='')
parser.add_argument("--re_rank", action='store_true', help='')
parser.add_argument("--random_erasing", action='store_true', help='')
parser.add_argument("--probability", type=float, default=0.5, help='')
parser.add_argument("--savedir", type=str, default='saved_models', help='directory name to save')
parser.add_argument("--outdir", type=str, default='out', help='')
parser.add_argument("--resume", type=int, default=0, help='resume from specific checkpoint')
parser.add_argument('--save', type=str, default='test', help='file name to save')
parser.add_argument('--load', type=str, default='', help='file name to load')
parser.add_argument('--save_models', action='store_true', help='save all intermediate models')
parser.add_argument('--pre_train', type=str, default='', help='pre-trained model directory')
args = parser.parse_args()
for arg in vars(args):
if vars(args)[arg] == 'True':
vars(args)[arg] = True
elif vars(args)[arg] == 'False':
vars(args)[arg] = False
报错信息
usage: ipykernel_launcher.py [-h] [--nThread NTHREAD] [--cpu] [--nGPU NGPU]
[--datadir DATADIR] [--data_train DATA_TRAIN]
[--data_test DATA_TEST] [--reset]
[--epochs EPOCHS] [--test_every TEST_EVERY]
[--batchid BATCHID] [--batchimage BATCHIMAGE]
[--batchtest BATCHTEST] [--test_only]
[--model MODEL] [--loss LOSS] [--act ACT]
[--pool POOL] [--feats FEATS] [--height HEIGHT]
[--width WIDTH] [--num_classes NUM_CLASSES]
[--lr LR] [--optimizer {SGD,ADAM,NADAM,RMSprop}]
[--momentum MOMENTUM] [--dampening DAMPENING]
[--nesterov] [--beta1 BETA1] [--beta2 BETA2]
[--amsgrad] [--epsilon EPSILON] [--gamma GAMMA]
[--weight_decay WEIGHT_DECAY]
[--decay_type DECAY_TYPE] [--lr_decay LR_DECAY]
[--margin MARGIN] [--re_rank] [--random_erasing]
[--probability PROBABILITY] [--savedir SAVEDIR]
[--outdir OUTDIR] [--resume RESUME] [--save SAVE]
[--load LOAD] [--save_models]
[--pre_train PRE_TRAIN]
ipykernel_launcher.py: error: unrecognized arguments: -f /home/aistudio/.local/share/jupyter/runtime/kernel-40c2f49a-89d4-4191-b1b1-3e1c38a0d910.json
/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/IPython/core/interactiveshell.py:3273: UserWarning: To exit: use 'exit', 'quit', or Ctrl-D.
warn("To exit: use 'exit', 'quit', or Ctrl-D.", stacklevel=1)
An exception has occurred, use %tb to see the full traceback.
SystemExit: 2
解决方案
做如下替换
parser.parse_args()→parser.parse_known_args()[0]