LoginSignup
11
9

More than 3 years have passed since last update.

python3でyamlファイルを読み込む

Posted at

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の扱い

11
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
9