你的实验会让人高兴吗?
kondo的Python项目详细描述
近藤
这个名字的灵感来自于Marie Kondo的整理冒险。
扔掉那些不能用这个不可知论的小框架激发快乐的实验 模块。
安装
Pypi
pip install kondo
来源
pip install git+https://github.com/activatedgeek/kondo.git@master
注意:与主分支相比,更喜欢固定到引用以进行意外更新。
用法
创建新的
Experiment
类fromkondoimportExperiment,RandIntType,ChoiceTypeclassMyExp(Experiment):def__init__(self,foo=100,bar='c',**kwargs):super().__init__(**kwargs)self.foo=fooself.bar=bardefrun(self):print('Running experiment with foo={}, bar="{}".'.format(self.foo,self.bar))@staticmethoddefspec_list():return[('example',3,dict(foo=RandIntType(low=10,high=100),bar=ChoiceType(['a','b','c']),))]
确保使用
**kwargs
将所有关键字参数捕获到超级类。 如上所述。创建
Hyperparameter
规范fromkondoimportHParamshparams=HParams(MyExp)
HParams
类自动识别 将实验指定为具有默认值的构造函数的参数。这个spec
可以是任何键值对(也可以包括将 在所有的试验中都很常见)。其他可用类型可以在param_types.py中看到。
每次生成试验并创建新的试验
fortrial,_inhparams.trials():exp=MyExp(**trial)exp.run()
这三个试验的样本输出,随机选择
foo
的值 而bar
如下所示。每一行代表发送到MyExp
类的构造函数。Running experiment with foo=93, bar="b". Running experiment with foo=30, bar="c". Running experiment with foo=75, bar="c".
我们也可以保存这些配置供以后使用,并加载实验 随需应变。我们通过以下调用来扩展上述示例
importostrials_dir=os.path.join(os.path.abspath(os.path.dirname(__file__)),'.trials')hparams.save_trials(trials_dir)
然后,我们从
YAML
文件中加载所有保存的试验。importglobforfnameinglob.glob('{}/**/trial.yaml'.format(trials_dir)):trial,_=MyExp.load(fname,run=False)exp=MyExp(**trial)exp.run()
现在,您可以在超参数搜索和throw期间继续调整规范 把那些不快乐的人赶走!.
完整的示例文件位于basic.py。
许可证
阿帕奇2.0