尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
TF Models backbone_reuse:用冻结的 ImageNet 预训练 Backbone 训练 Mask R-CNN 的完整实践
TF Models backbone_reuse用冻结的 ImageNet 预训练 Backbone 训练 Mask R-CNN 的完整实践【免费下载链接】modelsModels and examples built with TensorFlow项目地址: https://gitcode.com/GitHub_Trending/mode/models本文基于 tensorflow/models 仓库中official/projects/backbone_reuse子项目的说明文档与配套配置文件讲解冻结图像分类 backbone 的特征复用backbone freezing方法在目标检测/实例分割模型上的落地方式如何选用 ResNet-RS-101 预训练权重、如何选择并修改 FPN / NASFPN / Cascade 系列实验配置、freeze_backbone与init_checkpoint_modules两个核心标志在源码中如何生效以及不同训练日程72 / 600 epochs下的学习率与步数设置帮助读者掌握以分类预训练特征提升下游检测任务效果的可复现实战流程。背景backbone 冻结训练方法backbone_reuse项目对应的工作是论文《Proper Reuse of Image Classification Features Improves Object Detection》CVPR 2022被选为 Oral 报告其核心思想是在把图像分类预训练的 backbone 迁移到 Mask R-CNN 等下游检测架构时在整个下游训练过程中保持 backbone 权重冻结只训练 decoder、检测头等其余部分反而能获得更好的检测效果。仓库中的项目入口文档为 README.md它给出了一套下载预训练 checkpoint → 选择实验配置 → 指向 checkpoint 文件 → 走标准 TFVision 训练管线的极简操作流程。训练 Mask R-CNN冻结 ResNet-RS-101ImageNet 预训练README 给出的完整训练步骤如下已结合仓库内配置补充细节下载 ResNet-RS-101 预训练 checkpoint。README 指出应使用 TF-Vision Model Garden 中以 ImageNet 预训练的 ResNet-RS-101 权重原始文档中提供了 Model Garden 与 checkpoint 的下载链接可按文档指引获取resnet-rs-101压缩包。选择实验配置文件。仓库内置了 ResNet-101 消融实验的全部 YAML 配置位于 configs/experiments/faster_rcnn。选择依据两个维度目标架构FPN、NASFPN、NASFPN Cascade训练日程偏好较短的 72 epochs 或较长的 600 epochs。修改配置中的init_checkpoint标志指向第 1 步下载的 checkpoint 文件。完成以上三步后按照官方 TFVision 的 Mask R-CNN 标准训练管线即official/vision/train.py入口即可开始训练。配置文件中预置的关键标志打开任意一份消融配置例如 fastrcnn_resnet101_fpn_72epochs.yaml可以看到所有配置都以相同的任务头开启冻结逻辑task: # init_checkpoint: a_pretrained_backbone_checkpoint init_checkpoint_modules: backbone freeze_backbone: true model: backbone: resnet: model_id: 101 replace_stem_max_pool: true resnetd_shortcut: true scale_stem: true se_ratio: 0.25 stem_type: v1 type: resnet decoder: type: fpn detection_head: num_fcs: 2 norm_activation: activation: swish其中三个与特征复用直接相关的字段字段取值作用init_checkpoint需自行填写被注释掉的占位行需要改为实际的 ResNet-RS-101 checkpoint 路径init_checkpoint_modulesbackbone只从预训练 checkpoint 恢复 backbone 模块的权重可选值还有all、decoder见下文源码说明freeze_backbonetrue训练全程冻结 backbone其参数不产生梯度更新backbone 子配置则精确刻画了ResNet-RS-101这一模型变体RS 系列改进点model_id: 101101 层 ResNetreplace_stem_max_pool: true用 stride-4 的卷积 stem 替换 stem 中的 max-pooling保留更高分辨率特征resnetd_shortcut: trueResNet-D 风格的 shortcut低分辨率处对 shortcut 下采样避免形状不匹配时的零填充scale_stem: true对 stem 卷积初始化进行缩放se_ratio: 0.25加入 SESqueeze-and-Excitation模块通道压缩比 0.25stem_type: v1使用 v1 stem。decoder.type决定特征金字塔类型FPN 配置直接写fpnNASFPN 配置写nasfpn并额外指定金字塔层级范围min_level: 3、max_level: 7且 FPN 的 NASFPN 消融还显式设置include_mask: false只评测框 APCascade 系列在detection_head中开启cascade_class_ensemble: true与class_agnostic_bbox_pred: true并将input_size提高到[1280, 1280, 3]同时在roi_sampler中给出级联 IoU 阈值cascade_iou_thresholds: [0.7, 0.8]。可用配置一览configs/experiments下共 12 份 YAML按检测架构与训练日程组织Faster R-CNNMask R-CNN 框检测位于 configs/experiments/faster_rcnnfastrcnn_resnet101_fpn_72epochs.yaml / 600epochsfastrcnn_resnet101_fpn_cascade_72epochs.yaml / 600epochsfastrcnn_resnet101_nasfpn_72epochs.yaml / 600epochsfastrcnn_resnet101_nasfpn_cascade_72epochs.yaml / 600epochsRetinaNet位于 configs/experiments/retinanetretinanet_resnet101_fpn_72epochs.yaml / 600epochsretinanet_resnet101_nasfpn_72epochs.yaml / 600epochsREADME 正文聚焦于 Mask R-CNN 的消融实验RetinaNet 配置属于仓库中额外提供的同方法延伸可按相同方式使用。训练日程学习率与步数的差异同一架构下 72 epochs 与 600 epochs 两份配置的主要差别在trainer段。以 FPN 为例fastrcnn_resnet101_fpn_72epochs.yaml 与 fastrcnn_resnet101_fpn_600epochs.yaml项72 epochs600 epochs学习率调度PiecewiseConstantDecayvalues: [0.16, 0.016, 0.0016]boundaries: [88704, 125664]同学习率序列boundaries: [1062734, 1090458]train_steps1330561108940steps_per_loop/summary_interval18481848即两种日程使用完全一致的阶梯学习率曲线0.16 → 0.016 → 0.0016各衰减 10 倍只是衰减边界按总步数等比后移。数据侧两份配置保持一致global_batch_size: 64、随机水平翻转aug_rand_hflip: true、缩放范围[0.1, 2.0]。RetinaNet 系列则使用更大 batchglobal_batch_size: 256和相应翻倍的学习率values: [0.32, 0.032, 0.0032]72 epochs 档train_steps: 33264。原理剖析freeze_backbone在源码中如何生效README 的 How does it work? 部分说明配置文件设置任务标志freeze_backbone: true该标志会阻止预训练 backbone 权重在下游模型训练中更新。这一行为在官方 TFVision 任务实现中可以找到直接证据配置定义在 official/vision/configs/maskrcnn.py 中任务配置包含init_checkpoint: Optional[str] None init_checkpoint_modules: Union[str, List[str]] all # all, backbone, and/or decoder ... # If set, freezes the backbone during training. freeze_backbone: bool False这解释了 YAML 中init_checkpoint_modules: backbone的合法取值all、backbone、decoder它决定恢复 checkpoint 时只加载哪些模块与恢复范围和可训练范围解耦。冻结逻辑在 official/vision/tasks/maskrcnn.py 的build_model()末尾if self.task_config.freeze_backbone: model.backbone.trainable False即在构建 Mask R-CNN 模型后直接将 Keras backbone 的trainable置为False——backbone 前向照常计算特征图但其参数不再参与反向传播与优化器更新。同项目也复用了init_checkpoint的加载逻辑initialize()中支持文件或目录形式的 checkpoint。同样的freeze_backbone开关在 retinanet.py、image_classification.py、video_classification.py 等任务中均以相同方式实现因此 backbone_reuse 的配置可无缝挂到既有 TFVision 训练管线上。需要说明的一点是README 的表述是backbone 权重在训练期间不更新从源码看实现方式即 Keras 层级的trainable False这意味着冻结作用于 backbone 子模块内部参数而 FPN/NASFPN decoder、RPN 与 RoI 检测头仍按常规训练其中 decoder 部分默认不从分类 checkpoint 恢复除非另行调整init_checkpoint_modules。使用方式与适用前提运行入口完成 checkpoint 路径修改后使用 TFVision 标准训练命令以本项目的 YAML 作为--config_file传入即可配置为纯 YAML由official/vision/train.py的实验配置体系加载。适用前提方法针对 ImageNet 预训练的 ResNet-RS-101 特征复用到 Mask R-CNNFPN / NASFPN / Cascade的检测场景设计训练数据与评估均沿用 TFVision 的 Mask R-CNN 数据管线RetinaNet 配置可视为同一思想的单阶段检测延伸。结果引用具体的精度与消融结论以原论文为准仓库 README 未内嵌数值表格。引用信息如需在论文或报告中引用该工作README 提供了如下 BibTeXinproceedings{vasconcelos2022backbonefreeze, title {Proper Reuse of Image Classification Features Improves Object Detection}, author {Cristina Vasconcelos and Vighnesh Birodkar and Vincent Dumoulin}, booktitle{CVPR} year{2022}, }小结backbone_reuse子项目用一个可复制的配置集合把 CVPR 2022 Oral 论文冻结分类 backbone 复用特征的方法落到 TFVision 的 Mask R-CNN 管线上三份 YAML 级选择架构 × 日程覆盖 FPN、NASFPN、Cascade 与 72/600 epochs 组合核心改动只是init_checkpoint_modules: backbonefreeze_backbone: true两个标志其底层实现是 maskrcnn.py 中一行model.backbone.trainable False。理解了配置与源码的对应关系后即可按下载 ResNet-RS-101 checkpoint → 修改init_checkpoint→ 标准管线训练三步完整复现该实验。【免费下载链接】modelsModels and examples built with TensorFlow项目地址: https://gitcode.com/GitHub_Trending/mode/models创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

SpringBoot集成PyTorch实现轻量级会议人脸签到系统

SpringBoot集成PyTorch实现轻量级会议人脸签到系统

简介:本资源是一套面向本科毕业设计的高分实践项目——基于Spring Boot与深度学习技术构建的人脸识别会议签到系统源码,适用于计算机、人工智能、软件工程等专业学生完成课程设计、毕设或技术进阶学习。系统融合Web后端开发(Spring Boot MyB…

📅 2026/10/24 17:42:04
Apktool 使用教程:从反编译到重打包的完整实战指南

Apktool 使用教程:从反编译到重打包的完整实战指南

Apktool 使用教程:从反编译到重打包的完整实战指南 【免费下载链接】Apktool A tool for reverse engineering Android apk files 项目地址: https://gitcode.com/GitHub_Trending/ap/Apktool Apktool 是一款用于逆向 Android APK 的经典命令行工具&#xff…

📅 2026/10/6 13:52:11
微信聊天记录永久保存:留痕(WeChatMsg)快速上手的完整指南

微信聊天记录永久保存:留痕(WeChatMsg)快速上手的完整指南

微信聊天记录永久保存:留痕(WeChatMsg)快速上手的完整指南 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.co…

📅 2026/9/21 0:31:42
MORE NEWS

更多资讯

📰

Text-to-CAD全解析:从自然语言到CAD模型的生成流程

1. 项目概述1.1 从一句中文描述到可用CAD模型的完整链路"text-to-cad",字面意思就是把文字描述变成CAD模型。你输入一句"一个直径30毫米、高度50毫米的圆柱体,顶部带一个边倒角",系统在几十秒内就能生成对应的三维模型文…

📰

给 LLM 装上外挂大脑:会话记忆系统的设计与实现

生成一份超过5000字的高质量技术博文,结构合理且不含AI套路表达。下面开始直接输出正文。1. 项目源起:为什么要做一套会话记忆系统最近在调试一个基于大型语言模型的工具型项目,碰到一个特别疼的问题:模型能力强是强,但…

📰

数通H12-831题库判断题:OSPF/IS-IS/BGP机制边界解析

简介:面向备考华为HCIP-Datacom(H12-831)认证的考生,这份2024年数通新题库以PDF形式整理,重点解决考试题目变动后旧资料覆盖不足、复习方向不清的问题。压缩包仅含1个PDF文件,大小约327KB,轻量便…

📰

OpenAI 722 篇 AI 数学论文撤回 3 篇,验证成本该谁承担

10 月 6 日,OpenAI 在 GitHub 上一次性公开了 722 篇数学手稿,声称在几何、代数、计算机科学等方向的 372 个问题上取得进展。第二天撤回 3 篇:一个符号错误让其中一篇的论证失效,另外两篇依赖了同一个构造,一并作废&a…

📰

银河麒麟aarch64安装Docker 18.09.7与yum源依赖避坑

简介:这份文档面向在国产化服务器环境中部署容器平台的运维工程师与信创适配人员,聚焦银河麒麟 v10 SP1 Server 上 Docker 的落地安装问题。由于官方源缺少 docker server 软件包,文档给出阿里云 docker-ce 源与麒麟官方依赖源的配置方法&…

📰

Delphi XE10.2 安装 TMS Component Pack v8.3.4.0 兼容指南

简介:本资源为Delphi XE10.2 Tokyo平台专用的TMS Component Pack v8.3.4.0完整开发组件包,面向中高级Windows桌面及跨平台(Android/iOS)Delphi开发者,解决UI构建、数据绑定、图表可视化、数据库导航等高频开发需求。压…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬