use std::path::PathBuf;
use av_core::config::{DataPipeline, RunConfig};
fn main() -> anyhow::Result<()> {
let manifest_dir = PathBuf::from(env!("CARGO_MANIFEST_DIR"));
let config_path = match std::env::args().nth(1) {
Some(p) => PathBuf::from(p),
None => manifest_dir.join("../../configs/classify_smoke.toml"),
};
let cfg = RunConfig::from_path(&config_path)?;
let tasks = cfg
.model
.tasks
.iter()
.map(|t| t.kind_name())
.collect::<Vec<_>>()
.join(",");
let pipeline = match cfg.data.pipeline {
DataPipeline::Synthetic => "synthetic(内置合成,开箱即训)".to_string(),
DataPipeline::Dir => "dir(YOLO images/labels 目录)".to_string(),
DataPipeline::AvPack => "avpack(M2 落地)".to_string(),
};
println!("配置有效 ✔");
println!(" 配置文件 = {}", config_path.display());
println!(" run_id = {}", cfg.effective_run_id());
println!(" device = {}", cfg.device);
println!(" tasks = {tasks}");
println!(" epochs = {}", cfg.train.epochs);
println!(" batch_size = {}", cfg.train.batch_size);
println!(" amp = {}", cfg.train.amp);
println!(" 输出目录 = {}", cfg.output_dir.display());
println!(" 数据源 = {pipeline}");
Ok(())
}