pytorch进行多种实验设置,采用,yacs,yaml,进行不同实验参数配置configs

在这里插入图片描述

原创

使用yacs库配置神经网络的超参数

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/gefeng1209/article/details/90668882
         <!--一个博主专栏付费入口结束-->
        <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-d284373521.css">
                                    <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-d284373521.css">
            <div class="htmledit_views" id="content_views">
                                        <h2><a name="t0"></a>简介:</h2>

YACS是一个轻量级库,用于定义和管理系统配置,例如那些在为科学实验设计的软件中常见的配置。这些“配置”通常涵盖诸如用于训练机器学习模型的超参数或可配置模型超参数(诸如卷积神经网络的深度)之类的概念。 由于您正在进行科学研究,因此重复性至关重要,因此您需要一种可靠的方法来序列化实验配置。 YACS使用YAML作为简单的,人类可读的序列化格式。范式是:your code + a YACS config for experiment E (+ external dependencies + hardware + other nuisance terms ...) = reproducible experiment E。虽然您可能无法控制所有内容,但至少可以控制代码和实验配置。 YACS随时为您提供帮助。

用法

YACS可以以各种灵活的方式使用。主要范例有两种:

  • 配置为局部变量 (local variable)
  • 配置为全局单例(global singleton)

你可以根据自己的需要选择使用哪一种模式,但我们推荐你使用local variable模式

要在项目中使用YACS,首先要创建一个项目配置文件,通常称为config.py或defaults.py。 此文件是所有可配置选项的一站式参考点。 它应该有很好的文档记录,并为所有选项提供合理的默认值

最后,您可以在你的实际项目代码使用配置。 在初始设置之后,最好通过调用freeze()方法将配置冻结以防止进一步修改。 如下图所示,配置选项可以通过导入cfg并直接访问它来使用全局选项集(globle singleton模式),或者可以复制cfg并将其作为参数传递(local variable模式)。


 
 
  1. # my_project/main.py
  2. import my_project
  3. from config import get_cfg # local variable usage pattern, or:
  4. # from config import cfg # global singleton usage pattern
  5. if __name__ == "__main__":
  6. cfg = get_cfg_defaults()
  7. cfg.merge_from_file( "experiment.yaml")
  8. cfg.freeze()
  9. print(cfg)
  10. # Example of using the cfg as global access to options
  11. if cfg.SYSTEM.NUM_GPUS > 0:
  12. my_project.setup_multi_gpu_support()
  13. model = my_project.create_model(cfg)

命令行重写

您也可以使用完全限定的键值对列表来更新CfgNode。 这样可以轻松地从命令行使用覆盖选项。 例如:


 
 
  1. cfg.merge_from_file( "experiment.yaml")
  2. # Now override from a list (opts could come from the command line)
  3. opts = [ "SYSTEM.NUM_GPUS", 8, "TRAIN.SCALES", "(1, 2, 3, 4)"]
  4. cfg.merge_from_list(opts)

建议采用以下原则:“相同的配置选项只使用一种方法。” 这个原则意味着如果在YACS配置对象中定义了一个选项,那么你的程序应该使用cfg.merge_from_list(opts)设置该配置选项,而不是通过定义--train-scales作为命令行参数来实现。 然后用来设置cfg.TRAIN.SCALES。

 

 

 

文章最后发布于: 2019-07-11 21:25:21
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值