first add

This commit is contained in:
2025-10-12 19:39:12 +08:00
commit 592d4a824e
22 changed files with 469 additions and 0 deletions

View File

@@ -0,0 +1,6 @@
# 基础配置示例
learning_rate: 0.001
batch_size: 32
epochs: 100
model_name: "ResNet50"
device: "cuda"

View 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()

View File

@@ -0,0 +1,10 @@
defaults:
- model: resnet
- optimizer: adam
- dataset: cifar10
- _self_
learning_rate: 0.001
batch_size: 32
epochs: 100
device: cuda

View File

@@ -0,0 +1,5 @@
name: CIFAR-10
num_classes: 10
image_size: 32
train_samples: 50000
val_samples: 10000

View File

@@ -0,0 +1,5 @@
name: ImageNet
num_classes: 1000
image_size: 224
train_samples: 1281167
val_samples: 50000

View File

@@ -0,0 +1,5 @@
name: ResNet50
layers: 50
pretrained: true
num_classes: 1000
dropout: 0.5

View 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

View File

@@ -0,0 +1,4 @@
name: Adam
lr: ${learning_rate}
betas: [0.9, 0.999]
weight_decay: 0.0001

View File

@@ -0,0 +1,5 @@
name: SGD
lr: ${learning_rate}
momentum: 0.9
weight_decay: 0.0005
nesterov: true

View 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()

View 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()

View File

@@ -0,0 +1,11 @@
defaults:
- env: dev
- _self_
database:
host: localhost
port: 5432
server:
host: 0.0.0.0
port: 8000

View File

@@ -0,0 +1,9 @@
name: dev
debug: true
database:
host: localhost
port: 5432
server:
port: 8000

View File

@@ -0,0 +1,9 @@
name: prod
debug: false
database:
host: prod-db.example.com
port: 5432
server:
port: 8000

View File

@@ -0,0 +1,9 @@
name: test
debug: false
database:
host: test-db.example.com
port: 5432
server:
port: 8080