如何在Python中循环访问各种命令行参数集并循环运行脚本?

问题描述

我目前正在使用这个tensorflow-pression库:https://github.com/tensorflow/compression。我的问题不是特定于该库的工作方式,而是必须遍历命令行参数集,而需要做更多的工作,但是我想我会分享其他上下文。我正在训练具有各种datasets和各种lambda值的模型(lambda捕获损失函数的两个组件之间的折衷),而这两个都会影响命令行参数。可以在here中找到有关此库的特定argparse参数的更多信息。

当前,我正在命令行中为每个唯一的参数集手动运行模型训练脚本,如下所示:

python bls2017.py [arguments] 

例如,对于一组参数,它看起来像:

python bls2017.py --verbose --num_filters=32 train --patchsize=32 --lambda=0.1 --laststep=100000 --train_glob="images/cifar10/*". 

然后我将模型检查点保存到名称包含特定参数的目录中。对于上面的特定参数,此目录路径将为checkpoints/num_filters=64_patchsize=32_lambda=0.1_laststep=100000_train_glob=images/cifar100/*,总而言之,每个模型都有一个检查点文件夹(唯一的一组参数)。但是,这效率低下,因为我是针对每个参数集手动运行脚本,而不是通过编程迭代它们并运行脚本。有没有办法以编程方式循环训练这些模型(或达到某种效果),所以我不必为每组参数手动运行python bls2017.py [arguments]命令?

此外,我想使用compress子命令评估每个训练后的模型,该命令要求使用--checkpoint_dir来输入训练后的模型的检查点目录。获取所有模型目录的一种方法是执行glob.glob('checkpoints/*')获取模型检查点目录的列表。与我上面描述的类似,然后我想遍历所有模型检查点目录并运行脚本,而不是通过以下方式为每个模型/目录手动运行命令:

python bls2017.py --num_filters=64 --checkpoint_dir='checkpoints/num_filters=64_patchsize=32_lambda=0.1_laststep=100000_train_glob=images/cifar100/*' compress original.png compressed.tfci

我该怎么做?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)