first add
This commit is contained in:
6
examples/01_basic/conf/config.yaml
Normal file
6
examples/01_basic/conf/config.yaml
Normal file
@@ -0,0 +1,6 @@
|
||||
# 基础配置示例
|
||||
learning_rate: 0.001
|
||||
batch_size: 32
|
||||
epochs: 100
|
||||
model_name: "ResNet50"
|
||||
device: "cuda"
|
||||
27
examples/01_basic/train.py
Normal file
27
examples/01_basic/train.py
Normal file
@@ -0,0 +1,27 @@
|
||||
"""基础Hydra配置管理示例"""
|
||||
|
||||
import hydra
|
||||
from omegaconf import DictConfig
|
||||
from rich.console import Console
|
||||
from rich.table import Table
|
||||
|
||||
console = Console()
|
||||
|
||||
@hydra.main(version_base=None, config_path="conf", config_name="config")
|
||||
def train(cfg: DictConfig) -> None:
|
||||
console.print("\n[bold green]🚀 基础Hydra配置示例[/bold green]\n")
|
||||
|
||||
table = Table(title="当前配置")
|
||||
table.add_column("参数", style="cyan")
|
||||
table.add_column("值", style="yellow")
|
||||
|
||||
table.add_row("学习率", str(cfg.learning_rate))
|
||||
table.add_row("批次大小", str(cfg.batch_size))
|
||||
table.add_row("训练轮数", str(cfg.epochs))
|
||||
table.add_row("模型名称", cfg.model_name)
|
||||
|
||||
console.print(table)
|
||||
console.print("\n[bold green]✅ 训练完成![/bold green]\n")
|
||||
|
||||
if __name__ == "__main__":
|
||||
train()
|
||||
10
examples/02_ml_training/conf/config.yaml
Normal file
10
examples/02_ml_training/conf/config.yaml
Normal file
@@ -0,0 +1,10 @@
|
||||
defaults:
|
||||
- model: resnet
|
||||
- optimizer: adam
|
||||
- dataset: cifar10
|
||||
- _self_
|
||||
|
||||
learning_rate: 0.001
|
||||
batch_size: 32
|
||||
epochs: 100
|
||||
device: cuda
|
||||
5
examples/02_ml_training/conf/dataset/cifar10.yaml
Normal file
5
examples/02_ml_training/conf/dataset/cifar10.yaml
Normal file
@@ -0,0 +1,5 @@
|
||||
name: CIFAR-10
|
||||
num_classes: 10
|
||||
image_size: 32
|
||||
train_samples: 50000
|
||||
val_samples: 10000
|
||||
5
examples/02_ml_training/conf/dataset/imagenet.yaml
Normal file
5
examples/02_ml_training/conf/dataset/imagenet.yaml
Normal file
@@ -0,0 +1,5 @@
|
||||
name: ImageNet
|
||||
num_classes: 1000
|
||||
image_size: 224
|
||||
train_samples: 1281167
|
||||
val_samples: 50000
|
||||
5
examples/02_ml_training/conf/model/resnet.yaml
Normal file
5
examples/02_ml_training/conf/model/resnet.yaml
Normal file
@@ -0,0 +1,5 @@
|
||||
name: ResNet50
|
||||
layers: 50
|
||||
pretrained: true
|
||||
num_classes: 1000
|
||||
dropout: 0.5
|
||||
7
examples/02_ml_training/conf/model/transformer.yaml
Normal file
7
examples/02_ml_training/conf/model/transformer.yaml
Normal file
@@ -0,0 +1,7 @@
|
||||
name: ViT-B/16
|
||||
layers: 12
|
||||
pretrained: true
|
||||
num_classes: 1000
|
||||
hidden_dim: 768
|
||||
num_heads: 12
|
||||
patch_size: 16
|
||||
4
examples/02_ml_training/conf/optimizer/adam.yaml
Normal file
4
examples/02_ml_training/conf/optimizer/adam.yaml
Normal file
@@ -0,0 +1,4 @@
|
||||
name: Adam
|
||||
lr: ${learning_rate}
|
||||
betas: [0.9, 0.999]
|
||||
weight_decay: 0.0001
|
||||
5
examples/02_ml_training/conf/optimizer/sgd.yaml
Normal file
5
examples/02_ml_training/conf/optimizer/sgd.yaml
Normal file
@@ -0,0 +1,5 @@
|
||||
name: SGD
|
||||
lr: ${learning_rate}
|
||||
momentum: 0.9
|
||||
weight_decay: 0.0005
|
||||
nesterov: true
|
||||
32
examples/02_ml_training/train.py
Normal file
32
examples/02_ml_training/train.py
Normal file
@@ -0,0 +1,32 @@
|
||||
"""机器学习训练配置示例"""
|
||||
|
||||
import hydra
|
||||
from omegaconf import DictConfig
|
||||
from rich.console import Console
|
||||
from rich.tree import Tree
|
||||
|
||||
console = Console()
|
||||
|
||||
@hydra.main(version_base=None, config_path="conf", config_name="config")
|
||||
def train(cfg: DictConfig) -> None:
|
||||
console.print("\n[bold green]🤖 机器学习训练配置示例[/bold green]\n")
|
||||
|
||||
tree = Tree("🎯 Training Configuration")
|
||||
|
||||
model_tree = tree.add("[yellow]Model")
|
||||
model_tree.add(f"Name: {cfg.model.name}")
|
||||
model_tree.add(f"Layers: {cfg.model.layers}")
|
||||
|
||||
optimizer_tree = tree.add("[cyan]Optimizer")
|
||||
optimizer_tree.add(f"Name: {cfg.optimizer.name}")
|
||||
optimizer_tree.add(f"Learning Rate: {cfg.optimizer.lr}")
|
||||
|
||||
dataset_tree = tree.add("[magenta]Dataset")
|
||||
dataset_tree.add(f"Name: {cfg.dataset.name}")
|
||||
dataset_tree.add(f"Classes: {cfg.dataset.num_classes}")
|
||||
|
||||
console.print(tree)
|
||||
console.print("\n[bold green]✅ 配置加载完成![/bold green]\n")
|
||||
|
||||
if __name__ == "__main__":
|
||||
train()
|
||||
30
examples/04_multi_env/app.py
Normal file
30
examples/04_multi_env/app.py
Normal file
@@ -0,0 +1,30 @@
|
||||
"""多环境配置管理示例"""
|
||||
|
||||
import hydra
|
||||
from omegaconf import DictConfig
|
||||
from rich.console import Console
|
||||
from rich.table import Table
|
||||
|
||||
console = Console()
|
||||
|
||||
@hydra.main(version_base=None, config_path="conf", config_name="config")
|
||||
def run_app(cfg: DictConfig) -> None:
|
||||
env_colors = {"dev": "yellow", "test": "cyan", "prod": "red"}
|
||||
color = env_colors.get(cfg.env.name, "white")
|
||||
|
||||
console.print(f"\n[bold {color}]🌍 {cfg.env.name.upper()} 环境配置[/bold {color}]\n")
|
||||
|
||||
table = Table()
|
||||
table.add_column("配置项", style="cyan")
|
||||
table.add_column("值", style="yellow")
|
||||
|
||||
table.add_row("环境名称", cfg.env.name)
|
||||
table.add_row("调试模式", "✅" if cfg.env.debug else "❌")
|
||||
table.add_row("数据库主机", cfg.database.host)
|
||||
table.add_row("服务器端口", str(cfg.server.port))
|
||||
|
||||
console.print(table)
|
||||
console.print()
|
||||
|
||||
if __name__ == "__main__":
|
||||
run_app()
|
||||
11
examples/04_multi_env/conf/config.yaml
Normal file
11
examples/04_multi_env/conf/config.yaml
Normal file
@@ -0,0 +1,11 @@
|
||||
defaults:
|
||||
- env: dev
|
||||
- _self_
|
||||
|
||||
database:
|
||||
host: localhost
|
||||
port: 5432
|
||||
|
||||
server:
|
||||
host: 0.0.0.0
|
||||
port: 8000
|
||||
9
examples/04_multi_env/conf/env/dev.yaml
vendored
Normal file
9
examples/04_multi_env/conf/env/dev.yaml
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
name: dev
|
||||
debug: true
|
||||
|
||||
database:
|
||||
host: localhost
|
||||
port: 5432
|
||||
|
||||
server:
|
||||
port: 8000
|
||||
9
examples/04_multi_env/conf/env/prod.yaml
vendored
Normal file
9
examples/04_multi_env/conf/env/prod.yaml
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
name: prod
|
||||
debug: false
|
||||
|
||||
database:
|
||||
host: prod-db.example.com
|
||||
port: 5432
|
||||
|
||||
server:
|
||||
port: 8000
|
||||
9
examples/04_multi_env/conf/env/test.yaml
vendored
Normal file
9
examples/04_multi_env/conf/env/test.yaml
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
name: test
|
||||
debug: false
|
||||
|
||||
database:
|
||||
host: test-db.example.com
|
||||
port: 5432
|
||||
|
||||
server:
|
||||
port: 8080
|
||||
Reference in New Issue
Block a user