zoukankan      html  css  js  c++  java
  • .yaml文件的读取

    .yaml文件通常用老保存一些参数的配置,那如何去读取它呢

    首先看看.yaml文件长什么样

    GPUS: (0,1,2,3)
    LOG_DIR: 'log/'
    DATA_DIR: ''
    OUTPUT_DIR: 'output/'
    WORKERS: 4
    PRINT_FREQ: 1000
    
    MODEL: 
      NAME: cls_hrnet
      IMAGE_SIZE: 
        - 224
        - 224
      EXTRA:
        STAGE1:
          NUM_MODULES: 1
          NUM_RANCHES: 1
          BLOCK: BOTTLENECK
          NUM_BLOCKS:
          - 4
          NUM_CHANNELS:
          - 64
          FUSE_METHOD: SUM
        STAGE2:
          NUM_MODULES: 1
          NUM_BRANCHES: 2
          BLOCK: BASIC
          NUM_BLOCKS:
          - 4
          - 4
          NUM_CHANNELS:
          - 18
          - 36
          FUSE_METHOD: SUM

    这是样例。yaml文件在书写的时候要注意的是,1.不能使用tab键来进行缩进,只能使用空格键进行缩进。2.同一层级的数据只要对齐就可以了,至于几个空格不重要。

    下面来进行读取,读取的话使用的是load函数。代码如下

    import yaml
    yaml_dir='dir.yaml'
    f1=open(yaml_dir)
    config_params=yaml.load(f1,Loader=yaml.FullLoader)
    print(config_params['MODEL'])

    其中dir是你的文件路径,load函数用于加载,其实原来的load函数不需要第二个参数,但是昨天做的时候出现了一个异常,去查了一下说是不安全所以补上了第二个参数,第二个参数有很多个可以选取的值,https://github.com/yaml/pyyaml/wiki/PyYAML-yaml.load(input)-Deprecation,链接在这里可以自行查看。读取的结果是字典,长这样

    "MODEL"
    {
      "NAME": "cls_hrnet",
      "IMAGE_SIZE": [
        224,
        224
      ],
      "EXTRA": {
        "STAGE1": {
          "NUM_MODULES": 1,
          "NUM_RANCHES": 1,
          "BLOCK": "BOTTLENECK",
          "NUM_BLOCKS": [
            4
          ],
          "NUM_CHANNELS": [
            64
          ],
          "FUSE_METHOD": "SUM"
        },
        "STAGE2": {
          "NUM_MODULES": 1,
          "NUM_BRANCHES": 2,
          "BLOCK": "BASIC",
          "NUM_BLOCKS": [
            4,
            4
          ],
          "NUM_CHANNELS": [
            18,
            36
          ],
          "FUSE_METHOD": "SUM"
        },

    昨天看到的记录一下以免忘记。

  • 相关阅读:
    [程序员代码面试指南]递归和动态规划-换钱的方法数(DP,完全背包)
    [程序员代码面试指南]递归和动态规划-换钱的最少货币数(DP,完全背包)
    [程序员代码面试指南]数组和矩阵-未排序数组中累加和为给定值的最长子数组长度
    浅谈RDD
    Java中的移位操作符
    Boolean类源码分析
    IntegerCache详解
    Java Integer类分析
    ArrayList LinkedList Vector
    java的"=="与"equals"
  • 原文地址:https://www.cnblogs.com/daremosiranaihana/p/13180364.html
Copyright © 2011-2022 走看看