57 lines
1.5 KiB
Markdown
57 lines
1.5 KiB
Markdown
# ModYml: 模块化配置管理库
|
|
|
|
## 📦 项目简介
|
|
ModYml 是一个轻量级的 Python 配置管理库,专为模块化和可复用的配置设计。通过 YAML 文件支持配置继承、参数覆盖和别名系统,让复杂配置管理变得简单直观。
|
|
|
|
## ✨ 核心特性
|
|
- **模块化配置**:将配置拆分为可复用模块
|
|
- **动态继承**:使用 `$module.key` 语法引用其他配置
|
|
- **参数覆盖**:支持运行时参数修改 `$module.key(param=value)`
|
|
- **别名系统**:为配置项创建简短别名 `key(alias)`
|
|
- **命名空间隔离**:自动管理配置项的命名空间
|
|
- **点式访问**:返回 `EasyDict` 对象支持属性式访问
|
|
|
|
## ⚙️ 安装
|
|
```bash
|
|
pip install modyml
|
|
```
|
|
|
|
## 🚀 快速开始
|
|
1. 创建模块配置 (`modules/optimizers.yml`):
|
|
```yaml
|
|
adam:
|
|
type: Adam
|
|
params:
|
|
learning_rate(lr): 0.001
|
|
weight_decay(wd): 0.0001
|
|
```
|
|
|
|
2. 创建实验配置 (`experiments/E01.yml`):
|
|
```yaml
|
|
training:
|
|
base_optimizer: $optimizers.adam
|
|
custom_optimizer: $optimizers.adam(lr=0.002)
|
|
special_optimizer($optimizers.adam):
|
|
params:
|
|
wd: 0.01
|
|
```
|
|
|
|
3. 加载配置:
|
|
```python
|
|
from modyml import load
|
|
|
|
config = load(
|
|
"experiments/E01.yml",
|
|
module_files=["modules/optimizers.yml"],
|
|
base_dir="configs/"
|
|
)
|
|
|
|
print(config.training.base_optimizer.params.lr) # 输出: 0.001
|
|
print(config.training.custom_optimizer.params.lr) # 输出: 0.002
|
|
print(config.training.special_optimizer.params.wd) # 输出: 0.01
|
|
```
|
|
|
|
## 🧪 测试
|
|
```bash
|
|
pytest tests/
|
|
``` |