恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

如何用 Detectron2 analyze_model.py 分析模型的 FLOPs、参数量和激活量

  • 首页
  • 资讯中心
  • /
  • 如何用 Detectron2 analyze_model.py 分析模型的 FLOPs、参数量和激活量

相关资讯

梁单元声振耦合MATLAB代码:ASI自适应应变插值解决剪切锁定 2026/9/13 16:32:14
DMA跨平台迁移:x86到ARM的随机坏数据与一致性陷阱 2026/9/13 16:32:14
Stable Diffusion Forge 快速部署指南:三步跑通,三个风险关掉 2026/9/13 16:32:14

最新资讯

NocoBase 内置 AI 员工 Nathan:前端工程师在 JS 编辑器中的代码生成、修改与调试实战
Kubespray 发布流程完整指南:从版本规划、Release Notes 生成到容器镜像发布
marimo 的 LLM Info 数据包:模型目录结构、codegen 与 models.dev 同步机制详解
工业级8路30A继电器模块:RS485抗干扰与Modbus深度集成
长按开关机电源管理IC选型五大核心参数详解
olmOCR Elo 评分体系:基于人工成对评审的 OCR 工具排名与显著性检验

今日推荐

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验
Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化
Flutter应用改名全指南:从Android到iOS的配置与工具实践

本周热门

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验
Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化
Flutter应用改名全指南:从Android到iOS的配置与工具实践

本月精选

自研推理加速器Redwood:两周内实现PyTorch模型高效部署的实战教程
V4L2摄像头采集实战:从camera_client.rar到出图全流程解析
从“谁发明了钢琴键”到知识问答智能体:RAG与记忆工程实践

如何用 Detectron2 analyze_model.py 分析模型的 FLOPs、参数量和激活量

发布时间:2026/9/13 16:37:14
如何用 Detectron2 analyze_model.py 分析模型的 FLOPs、参数量和激活量 如何用 Detectron2 analyze_model.py 分析模型的 FLOPs、参数量和激活量【免费下载链接】detectron2Detectron2 is a platform for object detection, segmentation and other visual recognition tasks.项目地址: https://gitcode.com/GitHub_Trending/de/detectron2当你需要评估一个 detectron2 检测模型的计算开销——FLOPs、参数量、激活量——时项目自带的 analyze_model.py 可以直接完成这项分析无需自己写统计脚本。本文以mask_rcnn_R_50_FPN_1x.yaml为例说明三种统计任务的执行方式和输出含义。适用前提来自 INSTALL.mdLinux 或 macOS、Python ≥ 3.7、PyTorch ≥ 1.8脚本本身还要求单 GPU 运行代码中有assert args.num_gpus 1且flop与activation任务依赖测试数据集。准备环境按 INSTALL.md 安装 detectron2 即可本地克隆方式git clone https://github.com/facebookresearch/detectron2.git python -m pip install -e detectron2从源码构建需要 gcc g ≥ 5.4。如果你刚重装过 PyTorch需要先清掉旧的build/和**/*.so再重新构建否则可能遇到TH..、at::Tensor等符号缺失或段错误INSTALL.md 列出的常见问题。flop和activation任务会从配置的DATASETS.TEST[0]构建测试数据加载器。以本文用的 mask_rcnn_R_50_FPN_1x.yaml 为例它继承的 Base-RCNN-FPN.yaml 中DATASETS.TEST是(coco_2017_val,)所以你需要先准备好该数据集并可通过环境变量指定内置数据集位置export DETECTRON2_DATASETS/path/to/datasets其中/path/to/datasets替换为你的数据集根目录见 datasets/README.md。统计参数量不需要数据集和权重四种任务中parameter最轻量只需要配置文件。脚本 epilog 给出的官方示例cd tools/ ./analyze_model.py --tasks parameter \ --config-file ../configs/COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_1x.yaml脚本会构建模型并输出Parameter Count:加一张按模块分层的参数统计表源码中parameter_count_table(model, max_depth5)即最多展开 5 层。看到这张分层参数表即表示任务完成。统计 FLOPs需要准备测试数据FLOPs 是数据相关的——detectron2/utils/analysis.py 的文档明确说明检测模型的 FLOPs 取决于输入box mask head 的开销取决于 proposal 数量和检测到的目标数量因此单个样本的统计可能不能准确反映计算成本建议在多个输入上取平均。命令来自 tools/analyze_model.py 的官方示例注意MODEL.WEIGHTS后面的路径需替换为你自己的模型权重文件cd tools/ ./analyze_model.py --num-inputs 100 --tasks flop \ --config-file ../configs/COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_1x.yaml \ MODEL.WEIGHTS /path/to/model.pkl--num-inputs默认 100控制用于统计的输入数量FLOPs 和激活量都依赖它MODEL.WEIGHTS /path/to/model.pkl中的.pkl路径替换为实际权重文件。不传时脚本会使用配置文件里的默认权重地址本例是detectron2://ImageNetPretrained/MSRA/R-50.pkl由 detectron2 自行下载。脚本运行后通过日志给出三部分结果均为文档中的输出格式数值随模型和数据而定Flops table computed from only one input sample——仅基于单个输入样本的按算子 FLOPs 表来自 fvcore 的flop_count_tableAverage GFlops for each type of operators——各类型算子的平均 GFlopsTotal GFlops: 均值±标准差——在--num-inputs个输入上的总 GFlops 统计量。统计激活量与 FLOPs 相同的数据依赖activation任务的输入要求与flop完全相同测试数据集 模型权重可复用上面同一条命令只把任务换成activationcd tools/ ./analyze_model.py --num-inputs 100 --tasks activation \ --config-file ../configs/COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_1x.yaml \ MODEL.WEIGHTS /path/to/model.pkl输出同样是文档中定义的两段(Million) Activations for Each Type of Operators各算子类型的百万激活量和Total (Million) Activations: 均值±标准差。四个任务flop、activation、parameter、structure也可以一次指定多个--tasks接受多个值。structure任务打印完整模型结构适合在统计前先确认构建出的模型是否符合预期。理解统计口径与局限被忽略的算子analysis.py 中的FlopCountAnalysis会跳过一组逐元素和归约类算子_IGNORED_OPS如aten::add、aten::batch_norm、aten::sigmoid等并且torchvision::nms目前不做 FLOPs 估计。所以统计值反映的是卷积等主体算子的开销不是网络的全部逐算子计算量。数据依赖性单次输入的 FLOPs/激活量只作单样本参考脚本最终报告的是多输入上的均值±标准差跨模型比较时应使用同一--num-inputs和同一测试集。单 GPU 限制脚本断言num_gpus 1且不能带--eval-only多卡场景下直接用单卡跑统计即可。完成一次flop任务后如果你还想继续测量训练/推理/数据加载的速度可以参考同目录的 benchmark.py用法见 tools/README.md。【免费下载链接】detectron2Detectron2 is a platform for object detection, segmentation and other visual recognition tasks.项目地址: https://gitcode.com/GitHub_Trending/de/detectron2创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号