YAMLファイル(YAMLは「YAML Ain't Markup Language」の再帰的頭字語)は、データの記述や設定に使われるファイルフォーマットです。人間が読みやすく、書きやすい形式でデータを表現することができます。YAMLは多くのプログラミング言語でサポートされており、設定ファイルやデータ交換フォーマットとしてよく使用されます。
YAMLファイルの基本
-
基本的な構造
- キーと値: YAMLでは、キーと値のペアを使ってデータを表現します。キーと値はコロン(
:)で区切ります。key: value - インデント: 階層を表現するためにインデントを使用します。スペースを使い、タブは使用しません。
parent:
child: value
- キーと値: YAMLでは、キーと値のペアを使ってデータを表現します。キーと値はコロン(
-
リスト(配列)
- リストはハイフン(
-)で表現します。fruits:
- Apple
- Banana
- Cherry
- リストはハイフン(
-
辞書(マップ)
- 辞書はキーと値のペアで構成されます。
person:
name: John Doe
age: 30
address:
street: 123 Main St
city: Anytown
- 辞書はキーと値のペアで構成されます。
-
複雑なデータ構造
- YAMLでは、ネストされた辞書やリストを使って複雑なデータ構造を表現することができます。
company:
name: Tech Corp
employees:
- name: Alice
role: Developer
- name: Bob
role: Designer
departments:
engineering:
- team_lead: Alice
members:
- Charlie
- David
design:
- team_lead: Bob
members:
- Eva
- Frank
- YAMLでは、ネストされた辞書やリストを使って複雑なデータ構造を表現することができます。
-
コメント
- コメントはシャープ(
#)で始まり、行の終わりまで続きます。# これはコメントです
key: value # ここもコメントです
- コメントはシャープ(
YAMLファイルの用途
- 設定ファイル: アプリケーションやツールの設定に使います(例: CI/CDパイプラインの設定、データベース設定など)。
- データ交換: JSONの代替として、データ交換や保存に使います。
- データのシリアライズ: データを一時的に保存したり、ネットワーク越しに送信したりする際に使用します。
YAMLファイルの例
以下は、UnityのML-Agentsの設定ファイルの例です:
behaviors:
MyAgent:
trainer_type: ppo
hyperparameters:
batch_size: 64
buffer_size: 10240
learning_rate: 3e-4
beta: 5.0e-3
epsilon: 0.2
num_epoch: 3
time_horizon: 100
reward_signal:
extrinsic:
gamma: 0.99
strength: 1.0
network_settings:
num_layers: 3
hidden_units: 256
normalize: true
この例では、エージェントのトレーニングパラメータやネットワーク設定がYAML形式で記述されています。