You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Colab运行含argparse的train.py时遇未识别参数错误求助

Colab中argparse参数识别错误的解决方法

问题场景

在Colab平台运行包含argparse参数解析的情感分类训练脚本train.py时,出现参数识别错误,报错提示无法识别Colab内核自动传入的额外参数。

脚本主函数代码

if __name__ == '__main__':
    torch.cuda.empty_cache()
    
    """Parameters"""
    parser  = argparse.ArgumentParser(description = "Emotion Classifier" )
    parser.add_argument( "--batch", type=int, help = "batch_size", default = 1)
    
    parser.add_argument( "--epoch", type=int, help = 'training epohcs', default = 10) # 12 for iemocap
    parser.add_argument( "--norm", type=int, help = "max_grad_norm", default = 10)
    parser.add_argument( "--lr", type=float, help = "learning rate", default = 1e-6) # 1e-5
    parser.add_argument( "--sample", type=float, help = "sampling trainign dataset", default = 1.0) # 

    parser.add_argument( "--dataset", help = 'MELD or EMORY or iemocap or dailydialog', default = 'MELD')
    
    parser.add_argument( "--pretrained", help = 'roberta-large or bert-large-uncased or gpt2 or gpt2-large or gpt2-medium', default = 'roberta-large')    
    parser.add_argument( "--initial", help = 'pretrained or scratch', default = 'pretrained')
    parser.add_argument('-dya', '--dyadic', action='store_true', help='dyadic conversation')
    parser.add_argument('-fr', '--freeze', action='store_true', help='freezing PM')
    parser.add_argument( "--cls", help = 'emotion or sentiment', default = 'emotion')
        
    args = parser.parse_args()
    
    logger = logging.getLogger(__name__)
    streamHandler = logging.StreamHandler()
    
    # Add the line below to fix the issue.
    sys.exit(main())

报错信息

usage: colab_kernel_launcher.py [-h] [--batch BATCH] [--epoch EPOCH] [--norm NORM] [--lr LR]
                                [--sample SAMPLE] [--dataset DATASET] [--pretrained PRETRAINED]
                                [--initial INITIAL] [-dya] [-fr] [--cls CLS]
colab_kernel_launcher.py: error: unrecognized arguments: /root/.local/share/jupyter/runtime/kernel-1fba85a1-85fd-4471-a790-9c103c9dcac9.json
An exception has occurred, use %tb to see the full traceback.

SystemExit: 2
/usr/local/lib/python3.10/dist-packages/IPython/core/interactiveshell.py:3561: UserWarning: To exit: use 'exit', 'quit', or Ctrl-D.
  warn("To exit: use 'exit', 'quit', or Ctrl-D.", stacklevel=1)

解决方法

方法1:使用parse_known_args()替代parse_args()

Colab内核会自动传递额外的运行参数,parse_known_args()会忽略未定义的参数,只解析我们自定义的参数。修改代码中的参数解析行:

# 替换原来的 args = parser.parse_args()
args, _ = parser.parse_known_args()

方法2:手动传入空参数列表

直接给parse_args()传入空列表,避免读取系统自动传入的额外参数:

# 替换原来的 args = parser.parse_args()
args = parser.parse_args([])

方法3:改用命令行方式运行脚本

如果不需要在代码单元格中交互式运行,可以在Colab中用!python命令执行脚本,并手动指定参数,这样不会受到内核额外参数的干扰:

!python train.py --batch 8 --epoch 20 --dataset MELD --pretrained roberta-large

内容的提问来源于stack exchange,提问作者Wahab Al Labib

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 21:08:19