Gin Config is a lightweight and flexible configuration framework for Python built around dependency injection. It enables developers to manage complex parameter hierarchies—particularly common in machine learning experiments—without relying on boilerplate configuration classes or protos. By decorating functions and classes with @gin.configurable, Gin allows their parameters to be overridden using simple configuration files (.gin) or command-line bindings. Users can define default parameter values, scoped configurations, and modular references to functions, classes, or instances, resulting in highly composable and dynamic experiment setups. Gin is particularly popular in TensorFlow and PyTorch projects, where researchers and developers need to tune numerous interdependent parameters across models, datasets, optimizers, and training pipelines.
Features
- Dependency injection–based configuration for Python functions and classes
- Parameter overrides via .gin config files or command-line bindings
- Scoped configurations for managing multiple instances (e.g., GANs, multi-model systems)
- Configurable references for passing functions, classes, or instances dynamically
- Hierarchical configuration for complex experiment graphs
- TensorFlow (gin.tf) and PyTorch (gin.torch) integrations