使用 YAML2ModelGraph 可视化 YOLO 架构#
YAML2ModelGraph 是一个社区工具,可将 Ultralytics YOLO 模型 YAML 文件转换为 SVG 架构图。它可以帮助你记录自定义 模型,或检查模型的 backbone、neck 和 head 结构。
安装#
克隆项目并安装其 PyYAML 依赖:
git clone https://github.com/WangQvQ/YAML2ModelGraph.git
cd YAML2ModelGraph
pip install pyyaml使用方法#
从随附的 YOLO26 示例生成图表:
python main.py examples/yolo26.yaml output.svg使用 --head multi 绘制独立的特定尺度 head 节点,或选择一个随附的主题:
python main.py examples/yolo26.yaml output.svg --head multi --theme paper_ryb可用主题包括 paper、paper_ryb、candy、dark、ocean、retro、blueprint、forest,以及
journal。生成的 SVG 无需安装 Graphviz。
节点元数据#
在 YAML2ModelGraph 的 main.py 中编辑 DISPLAY_CONFIG,以选择每个节点中显示的详细信息:
DISPLAY_CONFIG = {
"show_channels": True,
"show_repeats": True,
"show_stride": True,
"show_args": False,
}自定义 YAML 模块名称会自动渲染。主题颜色、形状和字体排版在该
工具的 themes.py 中配置。
限制#
YAML2ModelGraph 会专门对齐标准的 Detect heads。其他任务 head(例如 OBB、Pose 和 Segment)
目前会渲染为通用的 neck-lane 节点。有关当前支持情况和使用详情,请参阅
YAML2ModelGraph 代码库。
常见问题#
支持。任何遵循
[from, repeats, module, args]层格式的 Ultralytics 模型 YAML 都可以渲染,并且自定义模块名称会被绘制为通用节点。格式请参考模型 YAML 配置指南。不需要。该工具直接生成 SVG,并且仅依赖 PyYAML。
只有标准的
Detect检测头。OBB、Pose和Segment检测头会被绘制为通用的 neck-lane 节点;当前支持情况请查看 YAML2ModelGraph 仓库。