SuperAPI AI 工具集

anomalib-benchmarking

数据与分析

查看项目

更新于 10-16 09:47

技能介绍

用途:该技能通过基准测试流水线批量运行模型、数据集与类别组合,完成训练与测试,将实测指标写入 CSV,用于生成可复现的基准数据,而不是手工编造或推断表格数字。

主要能力:Benchmark 顶层流水线会根据配置的 accelerator 和 torch.cuda.device_count() 选择 SerialRunner 或 ParallelRunner。BenchmarkJobGenerator 把配置中的 grid 条目展开为单个任务,字段可用 grid: [...] 扫描多值,生成各 grid 字段的笛卡尔积(示例中 2 个模型 × 2 个类别 = 4 个任务),非 grid 字段保持不变。BenchmarkJob 运行单个模型/数据集组合、计时并保存结果。

使用方式:可通过工具包装脚本 python tools/experimental/benchmarking/benchmark.py --config tools/experimental/benchmarking/sample.yaml 运行,或通过 anomalib CLI 的已注册流水线子命令 anomalib benchmark --config tools/experimental/benchmarking/sample.yaml 运行。配置中 benchmark 段可含 seed、model.class_path、data.class_path、data.init_args.category 等;data.class_path 与 model.class_path 遵循 anomalib.data.* 和 anomalib.models.* 解析规则。

结果位置:BenchmarkJob.save(...) 每个任务写入一行到 runs/benchmark/<timestamp>/results.csv,其中时间戳在保存时生成,例如 2026-08-24-10_30_00。每行包含模型、数据集、类别组合与实测指标,这是构建或刷新 README/文档基准表时应消费的文件。另有一个更窄的辅助脚本 tools/benchmark_mebin.py 写入 results/mebin_benchmark.csv,除非确需该行为,否则优先使用上述流水线。

限制与注意事项:grid 扫描会快速放大任务数量,需先确认笛卡尔积规模(如 5 模型 × 10 类别 = 50 次完整训练加测试)。accelerator: [cuda, cpu] 会为每个条目创建一个 runner,使每个模型/类别组合在每个 accelerator 上各运行一次,总任务数翻倍,它并非设备池选择器;若只想在 GPU 上基准测试,应使用 accelerator: [cuda]。不要向文档基准表手工写入或推断数字,应始终来自实际运行产出的 results.csv。可参考测试 tests/integration/pipelines/test_benchmark.py 了解如何以编程方式调用,以便调试任务生成。