引 言 在实际的工程项目中,深度模型运行时需从主程序中获取数据集存放位置,学习率等参数,配置参数设置常使用argparse.ArgumentParser
和yacs库的CfgNode
两种配置方法。除此以外,也可使用最简单的yaml文件
或json文件
传递相关配置信息。本文简单介绍yaml文件常用的功能函数和项目中的使用技巧。
文章目录
一、yaml库常用功能函数介绍
1.yaml.dump()
语法:
dump(data, stream=None)
将python对象(列表或字典)序列化成YAML流并存储到文件中。
data
:需要存储到文件的python对象
stream
:打开数据需要写入的文件。若为空,则直接返回生成的字符串
示例:
(1)将字典对象变成yaml格式数据
config_data1 = {
'model_1': 'alexnet', 'lr_1': 0.3}
yaml_str = yaml.dump(config_data1)
print(yaml_str)
####显示####
lr_1: 0.3
model_1: alexnet
(2)将列表对象变成yaml格式数据
config_data2 = ['cifar10','cifar100','imagenet']
yaml_str = yaml.dump(config_data2)
print(yaml_str)
####显示####
- cifar10
- cifar100
- imagenet
(3)python对象存入文件中,若多个字典对象可以嵌入到一个列表中。
config_data1 = [{
'model_1': 'alexnet', 'lr_1': 0.3},
{
'model_2': 'lenet', 'lr_2': 0.1},
{
'model_3': 'resnet', 'lr_3': 0.01}]
yaml.dump(config_data1,open('output.yaml','w'))
output.yaml
文件内容
- lr_1: 0.3
model_1: alexnet
- lr_2: 0.1
model_2: lenet
- lr_3: 0.01
model_3: resnet
2.yaml.dump_all()
语法:
yaml.dump_all(documents, stream=None)
将多个python对象(列表或字典)序列化成YAML流并存储到文件中。
documents
: 多个python对象组成的列表
``
示例:
config_data1 = {
'model_1': 'alexnet', 'lr_1': 0.3}
config_data2