使用 YAML2ModelGraph 可视化 YOLO 架构#
YAML2ModelGraph 是一款社区工具,可将 Ultralytics YOLO 模型 YAML 文件转换为 SVG 架构图。它可以帮助你记录自定义模型,或检查模型的主干网络、颈部和检测头结构。
安装#
克隆项目并安装其 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 绘制单独的、特定于各尺度的检测头节点,或选择一个随附主题:
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 检测头。其他任务检测头,例如 Segment、Pose 和 OBB,目前会呈现为通用颈部通道节点。请参阅 YAML2ModelGraph 代码库,了解当前支持情况和使用详情。
常见问题#
可以。任何遵循
[from, repeats, module, args]层格式的 Ultralytics 模型 YAML 文件都能呈现,自定义模块名称则会绘制为通用节点。有关格式的说明,请参阅模型 YAML 配置指南。不需要。该工具直接写入 SVG,且只依赖 PyYAML。
只有标准
Detect检测头。Segment、Pose和OBB检测头会绘制为通用颈部通道节点;请查看 YAML2ModelGraph 代码库了解当前支持情况。