Skip to content

Hydra ListConfig objects are not dynamically interploated. #611

@RafayAK

Description

@RafayAK

Hi, there is a small bug/oversight when using Hydra's dynamically interploated configurations. This issue is particularly in regards to the tags list in the experiment.yaml, for example.

tags:
  - "mnist"
  - "simple_dense_net"
  - ${task_name}  # should be dynamically interpolated
  - batch_size_${data.batch_size} # should also be dynamically interpolated

seed: 12345

trainer:
  min_epochs: 10
  max_epochs: 10
  gradient_clip_val: 0.5

...
...

logger:
  wandb:
    tags: ${tags}
    group: "mnist"
  aim:
    experiment: "mnist"

The tags list gets correctly resolved when Wandb configs are resolved but the tags them selves are not dynamically resolved when the config tree is printed:

CONFIG
├── data
│   └── _target_: src.data.mnist_datamodule.MNISTDataModule 
|           ....                                                                                                                                       
│                                                                                                                                                                                                  
├── model
│   └── _target_: src.models.mnist_module.MNISTLitModule                                                                                                                                           
│       ...                                                                                                                                                                                                                                                                                                                                                  
│                                                                                                                                                                                                  
├── callbacks
│   └── ...                                                                                                                        
│                                                                                                                                                                                                  
├── logger
│   └── wandb:                                                                                                                                                                                     
│         tags:                                                                                                                                                                                    
│         - mnist                                                                                                                                                                                  
│         - simple_dense_net                                                                                                                                                                       
│         - train   # RESOLVED                                                                                                                                                                               
│         - batch_size_64     # RESOLVED                                                                                                                                                                    
│         group: mnist                                                                                                                                                                             
│       aim:                                                                                                                                                                                       
│         experiment: mnist                                                                                                                                                                        
│                                                                                                                                                                                                  
...
...                                                                                                                                                 
├── task_name
│   └── train                                                                                                                                                                                      
├── tags
│   └── ['mnist', 'simple_dense_net', '${task_name}', 'batch_size_${data.batch_size}']   # UNRESOLVED

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions