深度学习项目中在yaml文件中定义配置,以及使用的python的PyYAML库包读取解析yaml配置文件

简介: 深度学习项目中在yaml文件中定义配置,以及使用的python的PyYAML库包读取解析yaml配置文件

1 yaml说明介绍

1.1 yaml介绍

1、百度百科对YAML解释

YAML"YAML Ain't a Markup Language"(YAML不是一种标记语言)的递归缩写。在开发的这种语言时,YAML 的意思其实是:"Yet Another Markup Language"仍是一种标记语言),但为了强调这种语言以数据做为中心,而不是以标记语言为重点,而用反向缩略语重命名。

YAML是一种数据序列化格式,优点是:

  • 对于人类可读性更友好
  • 方便与脚本语言进行交互使用

1.2 YAML 相关网址

2 YAML的python包PyYAML的使用

2.1 关于PyYAML的相关网址

PyYAML是关于一个操作yaml文件的python库包,相关网址如下:

2.2 安装PyYAML

1、安装yaml的python库包:PyYAML

pip install PyYAML

2、安装注意:

  • 1)虽然,在使用的时候是import yaml,但是安装的时候并不是直接安装yaml名的库包:pip install yaml这种安装方法是错误的,因为安装的并不是PyYAML库包
  • 2)在导入使用的时候,导入的名称为yaml,python中有很多这种安装包名和导入包名不一致的库包,例如opencv,我猜测可能是有人提前在pypi官网上传了某包名,因此导致被占用!

2.3 PyYAML快速使用

1、config.yaml配置文件中定义的可配值信息:

# train parameters setting
optimization: Adam
learning_rate: 0.001
batch_size: 64
epoch: 200

2、使用PyYAML模块解析config.yaml配置文件,主要步骤如下:

  • 使用open()打开config.yaml配置文件,然后使用read()读取
  • 使用yaml.load(stream, Loader)加载读取的配置文件数据,生成一个y的对象
  • 使用字典的形式访问生成的y对象中的配置信息

具体实现代码如下:

import yaml

yaml_path = "./config.yaml"

def read_yaml(yaml_path):
    # 使用open()函数读取config.yaml文件
    yaml_file = open(yaml_path, "r", encoding="utf-8")
    # 读取文件中的内容
    file_data = yaml_file.read()
    print(f"file_date type: {type(file_data)}\nfile_date value:\n{file_data}")
    yaml_file.close()

    # 加载数据流,返回字典类型数据
    y = yaml.load(file_data, Loader=yaml.FullLoader)
    print(f"y data type: {type(y)}\ny data value: {y}")

    # 下面就可以使用字典访问配置文件中的数据了
    print(f"optimization: {y['optimization']}")
    print(f"learning_rate: {y['learning_rate']}")
    print(f"batch_size: {y['batch_size']}")
    print(f"epoch: {y['epoch']}")

    optimization = y['optimization']
    learning_rate = y['learning_rate']
    batch_size = y['batch_size']
    epoch = y['epoch']

    print(type(optimization))
    print(type(learning_rate))
    return optimization, learning_rate, batch_size, epoch



if __name__ == '__main__':
    read_yaml(yaml_path)

输出结果

file_date type: <class 'str'>
file_date value:
# train parameters setting
optimization: Adam
learning_rate: 0.001
batch_size: 64
epoch: 200

y data type: <class 'dict'>
y data value: {
   'optimization': 'Adam', 'learning_rate': 0.001, 'batch_size': 64, 'epoch': 200}

optimization: Adam
learning_rate: 0.001
batch_size: 64
epoch: 200
<class 'str'>
<class 'float'>
目录
相关文章
|
4月前
|
监控 数据可视化 数据挖掘
Python Rich库使用指南:打造更美观的命令行应用
Rich库是Python的终端美化利器,支持彩色文本、智能表格、动态进度条和语法高亮,大幅提升命令行应用的可视化效果与用户体验。
398 0
|
3月前
|
数据可视化 关系型数据库 MySQL
【可视化大屏】全流程讲解用python的pyecharts库实现拖拽可视化大屏的背后原理,简单粗暴!
本文详解基于Python的电影TOP250数据可视化大屏开发全流程,涵盖爬虫、数据存储、分析及可视化。使用requests+BeautifulSoup爬取数据,pandas存入MySQL,pyecharts实现柱状图、饼图、词云图、散点图等多种图表,并通过Page组件拖拽布局组合成大屏,支持多种主题切换,附完整源码与视频讲解。
376 4
【可视化大屏】全流程讲解用python的pyecharts库实现拖拽可视化大屏的背后原理,简单粗暴!
|
3月前
|
传感器 运维 前端开发
Python离群值检测实战:使用distfit库实现基于分布拟合的异常检测
本文解析异常(anomaly)与新颖性(novelty)检测的本质差异,结合distfit库演示基于概率密度拟合的单变量无监督异常检测方法,涵盖全局、上下文与集体离群值识别,助力构建高可解释性模型。
400 10
Python离群值检测实战:使用distfit库实现基于分布拟合的异常检测
|
XML JavaScript 关系型数据库
|
XML JavaScript 关系型数据库
Python XML 解析
Python XML 解析
|
XML JavaScript API
Python XML 解析
Python XML 解析
225 0
|
XML JavaScript API
「Python系列」Python XML解析
在Python中,解析XML文件通常使用内置的`xml.etree.ElementTree`模块,它提供了一个轻量级、高效的方式来解析XML文档。此外,还有其他的第三方库,如`lxml`和`xml.dom`,它们提供了更多的功能和灵活性。
310 0
|
XML 安全 API
Python读写XML文件:深入解析与技术实现
Python读写XML文件:深入解析与技术实现
624 0
|
XML JSON 编解码
|
XML 关系型数据库 数据格式

热门文章

最新文章

推荐镜像

更多