Skip to content

Instantly share code, notes, and snippets.

@jmquintana79
Last active July 6, 2024 21:15
Show Gist options
  • Save jmquintana79/20bdef83f7715b9dc91e6b5d7d27ce00 to your computer and use it in GitHub Desktop.
Save jmquintana79/20bdef83f7715b9dc91e6b5d7d27ce00 to your computer and use it in GitHub Desktop.

Reference: https://hydra.cc/docs/patterns/configuring_experiments/

config.ymal

defaults:
  - db: mysql
  - server: apache

db/mysql.ymal

name: mysql

db/sqlite.ymal

name: sqlite

server/apache.yaml

name: apache
port: 80

server/nginx.yaml

name: nginx
port: 80

Directory structure

├── config.yaml
├── db
│   ├── mysql.yaml
│   └── sqlite.yaml
└── server
    ├── apache.yaml
    └── nginx.yaml

$ python my_app.py

db:
  name: mysql
server:
  name: apache

port: 80

"""
# config.yaml
data: data1
variables:
drop_features: ['iid', 'id', 'idg', 'wave']
categorical_vars: ['undergra', 'zipcode']
folders:
input: 'folder/input'
output: 'folder/output'
"""
from hydra import compose, initialize
with initialize(version_base=None, config_path="."):
config = compose(config_name="config")
print(f'Process {config.data}')
print(f'Drop features: {config.variables.drop_features}')
print(f'Folder input: {config.folders.input}')
print(f'Folder output: {config.folders.output}')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment