jupyter notebook使用argparse(传入list参数即可)

2022-09-19 08:08:36

jupyter notebook其实是可以使用 argparse来调用参数的,只要把参数转为list即可。

不能在jupyter notebook运行的代码(在shell里运行):parser.parse_args()
能在jupyter notebook运行的代码:parser.parse_args(arg_list)

只需要两步:

第一步. 创建一个简单的配置文件:config.ini

[train]
batch_size=32
num_layers=2

第二步. 用configparser类来加载这个文件,并将配置转换为list类型,再将list传入parser.parse_args(),即可无缝加入到argparse类里面。

下面是完整代码:

import argparseimport configparserif __name__=="__main__":
    jupyter=True# 如果不在jupyter notebook中,就改为False.
    
    parser= argparse.ArgumentParser(description='test')
    parser.add_argument('--batch_size',type=int, default=64)
    parser.add_argument('--num_layers',type=int, default=2)

    arg_list=Noneif jupyter:# load from config.ini,如果是用jupyter, 就转换配置为list再传入argparse
        config= configparser.ConfigParser()
        config.read('config.ini')# 其实是个字典:# print(config['train']['batch_size'])
        arg_list=[]for k, vin config['train'].items():
            arg_list.append("--"+k)
            arg_list.append(v)# 如果不是用jupyter,arg_list就是None,和用命令行执行没有区别。
    args= parser.parse_args(arg_list)print('args:', args)

以上代码可以放到jupyter文件里面直接执行或者是放到python文件中用命令行执行,如:python main.py --batch_size=200

  • 作者:Bagba
  • 原文链接:https://blog.csdn.net/bagba/article/details/122304352
    更新时间:2022-09-19 08:08:36