温州快速网站建设排名,江西城乡建设网站,初中生怎么提升学历,济南seo整站外包最近在写代码#xff0c;发现随着网络的增加#xff0c;代码变得越来越冗余#xff0c;所以就想着写一个网络的配置文件#xff0c;把网络的配置放到一个文件中#xff0c;而不再主函数中#xff0c;这样代码开起来就好看了#xff0c;调试的时候也方便了。之前写过一篇…最近在写代码发现随着网络的增加代码变得越来越冗余所以就想着写一个网络的配置文件把网络的配置放到一个文件中而不再主函数中这样代码开起来就好看了调试的时候也方便了。之前写过一篇神经网络配置文件的文章config配置文件原理及使用但是这篇文章不适用于我现在的情况这篇文章需要写一个config.py文件然后再写一个config.yaml文件有些网络的配置是在config.py文件中写的我想的是针对于某个网络单独建立一下config.yaml文件把他的配置写到里面然后在更新到config.py文件中可是这样写完报错原因就是config.yaml文件中定义的变量必须在config.py文件中有定义但是这样针对目前我的工程有多个神经网络就不符合解决代码冗长的初衷了所以就选择了本文的方案这里记录一下方便以后查阅。 yaml配置文件yaml介绍基本语法数据类型安装PyYAMLPyYAML使用参考资料yaml介绍
YAML是YAML Aint a Markup LanguageYAML不是一种标记语言的递归缩写。在开发的这种语言时YAML 的意思其实是Yet Another Markup Language仍是一种标记语言但为了强调这种语言以数据做为中心而不是以标记语言为重点而用反向缩略语重命名。
YAML是一种数据序列化格式优点是
对于人类可读性更友好方便与脚本语言进行交互使用
基本语法
大小写敏感使用缩进表示层级关系缩进不允许使用tab只允许空格缩进的空格数不重要只要相同层级的元素左对齐即可#表示注释
数据类型
对象键值对的集合又称为映射mapping/ 哈希hashes / 字典dictionary数组一组按次序排列的值又称为序列sequence / 列表list纯量scalars单个的、不可再分的值
安装PyYAML
pip install PyYAML安装的时候总是报错 本以为是网络的问题重复运行上面的安装代码好几次还是不行这就有可能不是网络的问题了然后就尝试着更新一下库
sudo apt-get update然后再尝试着安装结果一次成功 PyYAML使用
首先在config.yaml配置文件中定义可配置信息
DATA_AUGMENTATION : 5
KERNEL_L_CONV1 : 1EMBED_DIM_T : 150
EMBED_DIM_C : 62
HEADS_T : 5
HEADS_C : 2
ACT_ATTEN : elu
DROPOUT_ATTEN : 0.3DROPOUTRATE : 0.3
KERNEL_L_SEPARABLE : 3
DEPTHWISE : 5
AVGPOOL_DEPTHWISE : 2
AVGPOOL_SEPARABLE : 4AVGPOOL_SIZE_CLA : 1
FC_IN_CLA : 25
N_CLASSES : 3使用PyYAML模块解析config.yaml配置文件主要步骤如下
使用open()打开config.yaml配置文件然后使用read()读取使用yaml.load(stream, Loader)加载读取的配置文件数据生成一个y的对象使用字典的形式访问生成的y对象中的配置信息
def build_SelfAtten_Mixer(yaml_path):# 使用open()函数读取config.yaml文件yaml_file open(yaml_path, r, encodingutf-8)# 读取文件中的内容file_data yaml_file.read()# 加载数据流返回字典类型数据config yaml.load(file_data, Loaderyaml.FullLoader)build SelfAtten_Mixer model from configmodel SelfAtten_Mixer(data_augmentation config[DATA_AUGMENTATION],kernel_L_conv1 config[KERNEL_L_CONV1],embed_dim_T config[EMBED_DIM_T],embed_dim_C config[EMBED_DIM_C],heads_T config[HEADS_T],heads_C config[HEADS_C],act_atten config[ACT_ATTEN],dropout_atten config[DROPOUT_ATTEN],dropoutRate config[DROPOUTRATE],kernel_L_separable config[KERNEL_L_SEPARABLE],depthwise config[DEPTHWISE],avgpool_depthwise config[AVGPOOL_DEPTHWISE],avgpool_separable config[AVGPOOL_SEPARABLE],avgpool_size_cla config[AVGPOOL_SIZE_CLA],fc_in_cla config[FC_IN_CLA],n_classes config[N_CLASSES],)return model参考资料
深度学习项目中在yaml文件中定义配置以及使用的python的PyYAML库包读取解析yaml配置文件
Python的logging日志工具 深度学习项目yaml配置文件