yamlファイルは、設定ファイルに使われることが多いようです。
config.yaml
hyperparameterA:
name: 'ModelName_AAA'
param1: 1
param2: 2
hyperparameterB:
name: 'ModelName_BBB'
param1: 3
param2: 4
test.py
import yaml
with open('config.yml', 'r') as yml:
config = yaml.safe_load(yml)
print('--- A ---')
print('name: ', config['hyperparameterA']['name'])
print('param1: ', config['hyperparameterA']['param1'])
print('param2: ', config['hyperparameterA']['param2'])
print('--- B ---')
print('name: ', config['hyperparameterB']['name'])
print('param1: ', config['hyperparameterB']['param1'])
print('param2: ', config['hyperparameterB']['param2'])
実行
$ python3 test.py
--- A ---
name: ModelName_AAA
param1: 1
param2: 2
--- B ---
name: ModelName_BBB
param1: 3
param2: 4
YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details.
yaml.load(yml)
を使うとwarningが出る。
test.py
import yaml
with open('config.yml', 'r') as yml:
config = yaml.load(yml)
print('--- A ---')
print('name: ', config['hyperparameterA']['name'])
print('param1: ', config['hyperparameterA']['param1'])
print('param2: ', config['hyperparameterA']['param2'])
print('--- B ---')
print('name: ', config['hyperparameterB']['name'])
print('param1: ', config['hyperparameterB']['param1'])
print('param2: ', config['hyperparameterB']['param2'])
$ python3 test.py
YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details.
yaml.safe_load(yml)
もしくは、yaml.load(yml, Loader=yaml.SafeLoader)
を使うとwarningが出なくなる。
参考
Pythonで設定ファイルを読み込んでみる(YAMLファイル)
【後編】YAMLを使ってPyTorchのOptimizerのパラメータ管理をすごく簡単にする方法
pythonでyamlの扱い