Ultralytics YOLO27:

使用 YAML2ModelGraph 可视化 YOLO 架构#

YAML2ModelGraph 是一个社区工具,可将 Ultralytics YOLO 模型 YAML 文件转换为 SVG 架构图。它可以帮助你记录自定义 模型,或检查模型的 backbone、neck 和 head 结构。

Single-head YOLO architecture rendered by YAML2ModelGraph Multi-head YOLO architecture rendered by YAML2ModelGraph

安装#

克隆项目并安装其 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

可用主题包括 paperpaper_rybcandydarkoceanretroblueprintforest,以及 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(例如 OBBPoseSegment) 目前会渲染为通用的 neck-lane 节点。有关当前支持情况和使用详情,请参阅 YAML2ModelGraph 代码库

常见问题#

  • 支持。任何遵循 [from, repeats, module, args] 层格式的 Ultralytics 模型 YAML 都可以渲染,并且自定义模块名称会被绘制为通用节点。格式请参考模型 YAML 配置指南

  • 不需要。该工具直接生成 SVG,并且仅依赖 PyYAML。

  • 只有标准的 Detect 检测头。OBBPoseSegment 检测头会被绘制为通用的 neck-lane 节点;当前支持情况请查看 YAML2ModelGraph 仓库

评论