You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何打印YOLOv5模型(.pt格式文件)的模型摘要?

解决YOLOv5模型输入输出维度查看问题

核心原因

YOLOv5采用Ultralytics自定义的嵌套模型结构(比如Focus、Detect这类特殊层),torchsummary、torchstat这类工具仅支持简单序列模型,无法解析这种复杂自定义结构;直接调用torchinfo也会因模型forward逻辑的特殊性报错。

有效解决方案

方法1:用YOLOv5内置的summary()方法(最简便)

Ultralytics官方为YOLOv5模型内置了适配性极强的summary方法,直接调用就能输出每一层的输入输出维度、参数数量等信息:

import torch

# 加载模型(远程预训练模型或本地.pt模型均可)
model = torch.hub.load('ultralytics/yolov5', 'yolov5s', device='cpu')
# 若加载本地模型:model = torch.hub.load('ultralytics/yolov5', 'custom', path='your_model.pt', device='cpu')

# 调用内置方法
model.summary()

方法2:适配torchinfo的正确调用方式

如果偏好使用torchinfo,需要先将模型切换到评估模式,并传入实际输入张量让工具追踪forward流程:

import torch
from torchinfo import summary

model = torch.hub.load('ultralytics/yolov5', 'yolov5s', device='cpu')
model.eval()  # 避免BatchNorm、Dropout层干扰解析

# 构造符合模型要求的输入张量(batch_size, channels, height, width)
input_tensor = torch.randn(1, 3, 640, 640)

# 传入输入张量调用summary
summary(model, input_data=input_tensor)

之前尝试报错的原因

  • torchstat:仅支持简单线性序列模型,无法解析YOLOv5的嵌套自定义模块。
  • torchsummary:对复杂自定义结构兼容性差,且默认依赖GPU环境,无法处理YOLOv5的Detect等特殊层。
  • 直接用summary(model, (1,3,640,640)):未传入实际输入张量,torchinfo无法正确推断模型forward路径,触发结构解析错误。

内容的提问来源于stack exchange,提问作者user3303020

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 16:30:43