1 .创作灵感
小伙伴们再阅读深度学习模型的代码的时候,经常会遇到yaml格式的配置文件。用这个配置文件是因为我们在训练模型的时候会涉及很多的参数,如果这些参数东一个,西一个,我们调起来的时候就会很不方便,所以用yaml脚本将他们集中到一起,类似的配置文件还有,json等。
2.yaml文本的基本格式
新建confg.yaml文本编写以下内容:
# 配置文件
manual_seed: 1
device: cpu
model:
name: Unet
inchanlel: 1
out_chanlel: 1
f_maps: 64
trainer:
checkpoint_dir: '/home/user'
resume: '/home/user/last_checkpoint.pytorch'
注意两点:
(1)yaml通过键值对存储信息,通过冒号和空格区分键和值
(2)不同级别用空格进行缩进,同一级别的内容空格缩进相同
3.读取yaml文件的内容
import yaml
# 读取ymal文件
# 打开文件
with open('config.yaml', 'r', encoding="utf-8") as f:
#通过yaml.safe_load(f)函数读取内容
config = yaml.safe_load(f)
#通过字典索引的方式调用内容
checkpoint_dir = config['trainer']['checkpoint_dir']
print(f"地址: {checkpoint_dir}")
4. 写入yaml文件
# 写入yaml文件,以字典的形式存入数据
config_new = {
'optimizer': {
'learning_rate': 0.002,
'weight_decay': 0.0001
}
}
with open('config_new.yaml', 'w+') as f:
yaml.safe_dump(config_new, f)
数据会被存入到新的yaml文件中
参考文章
玩转PyYAML:让Python与YAML格式数据无缝对接 - 知乎 (zhihu.com)