深度学习项目中在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'>
目录
相关文章
|
8月前
|
网络安全 开发工具 git
在GitLab CI中同步HTTPS仓库地址的yaml配置
最后,提交并推送 `.gitlab-ci.yml`文件到您的GitLab仓库。GitLab CI/CD将自动识别这个文件,并在每次推送到 `master`分支时执行定义的同步任务。
434 16
|
数据采集 JSON API
深入解析:使用 Python 爬虫获取淘宝店铺所有商品接口
本文介绍如何使用Python结合淘宝开放平台API获取指定店铺所有商品数据。首先需注册淘宝开放平台账号、创建应用并获取API密钥,申请接口权限。接着,通过构建请求、生成签名、调用接口(如`taobao.items.search`和`taobao.item.get`)及处理响应,实现数据抓取。代码示例展示了分页处理和错误处理方法,并强调了调用频率限制、数据安全等注意事项。此技能对开发者和数据分析师极具价值。
|
8月前
|
JavaScript Java Maven
【SpringBoot(二)】带你认识Yaml配置文件类型、SpringMVC的资源访问路径 和 静态资源配置的原理!
SpringBoot专栏第二章,从本章开始正式进入SpringBoot的WEB阶段开发,本章先带你认识yaml配置文件和资源的路径配置原理,以方便在后面的文章中打下基础
620 4
|
8月前
|
Kubernetes 安全 网络协议
Kubernetes实用指令:通过dry-run生成部署与服务的YAML配置
总结起来, 使用 ` -- dry—run = client `- o yam l' 参数能够帮助用户预览 Kubernetes 资源定义并且确保它们符合预期效果且没有立即影响现有集群断层结构. 这种做法对于新手学习 K8s 资源规范、测试新策略或者审核现有策略都非常有效率与安全.
644 4
|
9月前
|
Java 测试技术 数据安全/隐私保护
通过yaml文件配置自动化测试程序
通过yaml文件可以将自动化测试环境,测试数据和测试行为分开,请看一下案例
368 4
|
12月前
|
网络协议 安全 区块链
DNS+:互联网的下一个十年,为什么域名系统正在重新定义数字生态? ——解读《“DNS+”发展白皮书(2023)》
DNS+标志着域名系统从基础寻址工具向融合技术、业态与治理的数字生态中枢转变。通过与IPv6、AI和区块链结合,DNS实现了智能调度、加密传输等新功能,支持工业互联网、Web3及万物互联场景。当前,中国IPv6用户达7.6亿,全球DNSSEC支持率三年增长80%,展现了其快速发展态势。然而,DNS+仍面临安全威胁、技术普惠瓶颈及生态协同挑战。未来,需推动零信任DNS模型、加强威胁情报共享,并加速标准制定,以筑牢数字时代网络根基,实现更安全、高效的数字生态建设。
759 4
|
供应链 项目管理 容器
深入探索 BPMN、CMMN 和 DMN:从定义到应用的全方位解析
在当今快速变化的商业环境中,对象管理组织(OMG)推出了三种强大的建模标准:BPMN(业务流程模型和符号)、CMMN(案例管理模型和符号)和DMN(决策模型和符号)。它们分别适用于结构化流程管理、动态案例处理和规则驱动的决策制定,并能相互协作,覆盖更广泛的业务场景。BPMN通过直观符号绘制固定流程;CMMN灵活管理不确定的案例;DMN以表格形式定义清晰的决策规则。三者结合可优化企业效率与灵活性。 [阅读更多](https://example.com/blog)
深入探索 BPMN、CMMN 和 DMN:从定义到应用的全方位解析
|
机器学习/深度学习 数据采集 自然语言处理
基于Python的情感分析与情绪识别技术深度解析
本文探讨了基于Python的情感分析与情绪识别技术,涵盖基础概念、实现方法及工业应用。文中区分了情感分析与情绪识别的核心差异,阐述了从词典法到深度学习的技术演进,并通过具体代码展示了Transformers架构在细粒度情感分析中的应用,以及多模态情绪识别框架的设计。此外,还介绍了电商评论分析系统的构建与优化策略,包括领域自适应训练和集成学习等方法。未来,随着深度学习和多模态数据的发展,该技术将更加智能与精准。
858 1
|
存储 数据采集 JSON
Python爬取某云热歌榜:解析动态加载的歌曲数据
Python爬取某云热歌榜:解析动态加载的歌曲数据
|
XML JavaScript 关系型数据库

推荐镜像

更多