config配置文件原理及使用

今天看完了EEGNet的论文准备搭建一下EEGNet的网络,然后想到之前看过网络配置文件的内容,然后想着以后开发自己的网络的能够规范和方便,所以就学习一下,并在这里记录一下,方便以后查阅。

config配置文件

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

config代码

a.yaml

DATA:
  BATCH_SIZE: 512
MODEL:
  TRANS:
    EMBED_DIM: 768

config.py

from yacs.config import CfgNode as CN
import yaml


# 设置默认参数
_C = CN()

_C.DATA = CN()
_C.DATA.DATASET = 'cifar10'
_C.DATA.BATCH_SIZE = 128

_C.MODEL = CN()
_C.MODEL.NUM_CLASSES = 10

_C.MODEL.TRANS = CN()
_C.MODEL.TRANS.EMBED_DIM = 96
_C.MODEL.TRANS.DEPTHS = [2, 2, 6, 2]
_C.MODEL.TRANS.QKV_BIAS = False


# 通过yaml更新参数
def _update_config_from_file(config, cfg_file):
    config.defrost()
    config.merge_from_file(cfg_file) # .yaml

# 通过argparser.ArgumentParser更新参数
def update_config(config, args):
    if args.cfg:
        _update(config, args.cfg)
    if args.dataset:
        config.DATA.DATASET = args.datasert
    if args.batch_size:
        config.DATA.BATCH_SIZE = args.batch_size
    return config

def get_config(cfg_file=None):
    config = _C.clone()
    if cfg_file:
        _update_config_from_file(config, cfg_file)
    return config

def main():
    cfg  = get_config('./a.yaml')
    print(cfg)

if __name__ == "__main__":
    main()

输出:

在这里插入图片描述

argparse.py

import argparse
from config import get_config
from config import update_config

def get_argument():
    parser = argparse.ArgumentParser('ViT')
    parser.add_argument('-cfg', type=str, default=None)
    parser.add_argument('-dataset', type=str, default=None)
    parser.add_argument('-batch_size', type=str, default=None)

    arguments = parser.parse_args()
    return arguments

def main():
    cfg = get_config()
    print(cfg)
    print('-----------------')
    cfg = get_config('./a.yaml')
    print(cfg)
    print('-----------------')
    args = get_argument()
    cfg = update_config(cfg, args)
    print(cfg)

if __name__ == "__main__":
    main()

输出:

在这里插入图片描述

config配置文件的使用

PaddleViTSwinTransformer为例:

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

参考资料

自监督ViT算法:BeiT和MAE

PaddleViT

SwinTransformer

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值