如何解决如何在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 举报,一经查实,本站将立刻删除。