IMDLBenCo 文档IMDLBenCo 文档
  • 基本信息

    • 简介
    • 框架设计
  • 快速上手

    • 安装
    • 数据集准备
    • 案例一:使用Model Zoo训练复现SoTA论文
    • 案例二:使用Model Zoo配合checkpoint快速测试
    • 案例三:使用benco init实现你自己的模型
    • 案例四:推理并保存一个数据集的mask和label
    • 案例五:获得模型的参数量和FLOPs
  • API文档
  • 数据集

    • # 篡改检测数据集索引
    • AIGC生成内容数据集索引
  • 模型和论文

    • BenCo内实现的模型
    • 其他模型,算法,论文
  • English
  • 简体中文
GitHub
  • 基本信息

    • 简介
    • 框架设计
  • 快速上手

    • 安装
    • 数据集准备
    • 案例一:使用Model Zoo训练复现SoTA论文
    • 案例二:使用Model Zoo配合checkpoint快速测试
    • 案例三:使用benco init实现你自己的模型
    • 案例四:推理并保存一个数据集的mask和label
    • 案例五:获得模型的参数量和FLOPs
  • API文档
  • 数据集

    • # 篡改检测数据集索引
    • AIGC生成内容数据集索引
  • 模型和论文

    • BenCo内实现的模型
    • 其他模型,算法,论文
  • English
  • 简体中文
GitHub
  • 指南

    • 简介
    • 框架设计
  • 快速上手

    • 安装
    • 数据集准备
    • 案例一:使用Model Zoo训练复现SoTA论文
    • 案例二:使用Model Zoo配合checkpoint快速测试
    • 案例三:使用benco init实现你自己的模型
    • 案例四:推理并保存一个数据集的mask和label
    • 案例五:获得模型的参数量和FLOPs

案例五:获得模型的参数量和FLOPs

我们认为学习最快的方式就是“Learn by Doing”(边做边学),所以通过几个案例来帮助使用者快速上手。

总的来说IMDL-BenCo通过类似git、conda这样的命令行调用方式帮助你快速完成图像篡改检测科研项目的开发。如果你学过vue等前端技术,那按照vue-cli来理解IMDLBenCo的设计范式会非常轻松。

无论如何,请先参考安装完成IMDL-BenCo的安装。

本章动机

科研和学术paper中,我们不仅要关注模型在任务上的指标是否强大,也需要关注模型涨点是否是以巨大的计算开销为代价的。本章可以方便的帮你观测你在BenCo中实现的模型复杂度指标:FLOPs和Parameter数量

本功能技术来源

  • 本功能实现自Facebook的fvcore中的fvcore.nn.FlopCountAnalysis类
  • 详细信息请参考:fvcore/docs/flop_count.md

更新版本

本功能在IMDLBenCo的v0.1.37版本加入,请使用benco -v查看版本,必要时请更新到最新版本以使用复杂度统计功能。

准备

你只需要准备好待测的推理模型即可,或者直接通过注册机制调用model_zoo中已经实现好的现有模型。

因为只是计算复杂度,而无需关注推理准确率,你甚至不需要checkpoint。

使用

该功能可以在benco init和benco init model_zoo下使用,最新版本会在你的工作路径下生成test_complexity.py,该文件只需要显式指明模型名称,输入图像尺寸,padding还是resizing策略即可。

特别的,如果有的模型需要输入edge_mask等等额外信息才能推理的话,可以参考MVSS-Net的启动脚本:

python ./test_complexity.py \
    --model MVSSNet \
    --test_batch_size 1 \
    --edge_mask_width 7 \
    --image_size 512 \
    --if_resizing

因为只是测试复杂度,所以单卡单batch_size即可。否则FLOPs会随着batchsize的增大而随之成倍增长。

在 GitHub 上编辑此页
上次更新: 2025/6/3 07:27
贡献者: Sunnyhaze
Prev
案例四:推理并保存一个数据集的mask和label