ConvNeXt V2训练自定义分类数据集
代码地址GitHub - facebookresearch/ConvNeXt-V2: Code release for ConvNeXt V2 model论文地址[2301.00808] ConvNeXt V2: Co-designing and Scaling ConvNets with Masked Autoencoders一、简介ConvNext V2是Facebook AI Research提出的ConvNeXT改进版本。在计算机视觉中虽然基于Transformer的架构在多个任务中表现超过了纯卷积架构网络但是作者通过借鉴Transformer的思想充分吸收其关键设计如分层特征图、大感受野、更少的激活函数等最终提出了ConvNeXt网络并且在多个任务上证明了纯卷积设计能够达到甚至超越Transformer的性能。ConvNeXt V2在ConvNeXt的基础上引入了自监督学习其核心创新点在于其自监督学习技术和架构改进的协同设计Co-desiging1、为ConvNet量身定制的全卷积自监督学习框架全卷积掩码自编码器FCMAE2、在架构上引入针对性改进以解决自监督训练时出现的特定问题提出GRN (Global Response Normalization) 层用于增强通道间的特征竞争模拟大脑神经元之间的横向抑制机制提升特征的判别力。全卷积掩码自编码器FCMAEFCMAE通过随机遮蔽输入图像的部分区域强迫模型从上下文信息中重建完整图像。使用子流形稀疏卷积代替标准卷积使卷积操作仅在可见像素上发生完美适配了卷积的密集滑动特性避免了直接引入可学习掩码token带来的训练-测试不一致问题。FCMAE 框架与传统的掩码自编码器MAE框架相比FAMAE使用了全卷积结构而不是使用全连接层来生成掩码和重建图像。稀疏卷积让卷积网络也能够高效、自然地处理稀疏输入同时又天然保留图像的二维空间结构和局部性归纳偏置。同时使用多尺度掩码策略而不是固定大小的掩码可以增加模型对不同尺度特征的感知能力。全局响应归一化GRN层在FCMAE预训练过程中研究者发现 ConvNeXt 模型存在“特征崩溃”Feature Collapse现象许多特征图变得停滞或饱和通道间的激活冗余模型学习到的特征多样性不足。因此他们提出了GRN (Global Response Normalization) 层其目的是增强通道间的特征竞争模拟大脑神经元之间的横向抑制机制提升特征的判别力。将GRN插入到ConvNeXt块的11点卷积之后作用在扩展后的高维特征上让模型能够更有效地利用通道维度从而提取更丰富、更有区分度的特征。GRN的实现代码如下所示包含三个步骤空间聚合对输入特征在空间维度高 H 和宽 W上计算L1范数从而计算每个通道在整张图上的全局响应通道归一化对上一步得到的通道能量取平均值然后用各通道的能量除以这个平均值得到一个归一化的比率消除了图像整体亮度和对比度的影响特征校准利用这个比率对原始特征进行调整实现“强者更强弱者更弱”的竞争机制。#models/utils.py class GRN(nn.Module): GRN (Global Response Normalization) layer def __init__(self, dim): super().__init__() self.gamma nn.Parameter(torch.zeros(1, 1, 1, dim)) self.beta nn.Parameter(torch.zeros(1, 1, 1, dim)) def forward(self, x): Gx torch.norm(x, p2, dim(1,2), keepdimTrue) Nx Gx / (Gx.mean(dim-1, keepdimTrue) 1e-6) return self.gamma * (x * Nx) self.beta x二、在自定义数据集上训练从仓库下载完代码后可以看到在README.md有关于不同类型的ConvNeXt V2模型的预训练权重。训练自己数据集时使用预训练权重能够加速模型收敛并得到更好的性能表现。同时还包含了单卡和多卡的测试命令在TRAINING.md里有单卡和多卡的预训练和微调的命令。需要注意的是仓库代码里默认的数据集是ImageNet数据集而在作者给的训练命令里没有指明这个参数值所以在使用了自己的数据集路径后会出现最后输出的类别数目错误相关的错误。因为在datast.py里面作者写死了分类的类别数目。所以最好将data_set改为image_folder。#main_finetune.py parser.add_argument(--data_set, defaultIMNET, choices[CIFAR, IMNET, image_folder], typestr, helpImageNet dataset path) #dataset.py if args.data_set CIFAR: dataset datasets.CIFAR100(args.data_path, trainis_train, transformtransform, downloadTrue) nb_classes 100 elif args.data_set IMNET: print(reading from datapath, args.data_path) root os.path.join(args.data_path, train if is_train else val) dataset datasets.ImageFolder(root, transformtransform) nb_classes 1000 elif args.data_set image_folder: root args.data_path if is_train else args.eval_data_path dataset datasets.ImageFolder(root, transformtransform) nb_classes args.nb_classes assert len(dataset.class_to_idx) nb_classes else: raise NotImplementedError() print(Number of the class %d % nb_classes)下面是在单卡上给出的微调和测试命令示例,#微调 python main_finetune.py \ --model convnextv2_base \ --batch_size 16 --update_freq 4 \ --blr 1e-3 \ --epochs 500 \ --warmup_epochs 20 \ --layer_decay_type group \ --layer_decay 0.6 \ --weight_decay 0.05 \ --drop_path 0.1 \ --reprob 0.25 \ --smoothing 0. \ --model_ema True --model_ema_eval True \ --use_amp True \ --finetune convnextv2_base_1k_224_ema.pt \ --data_path /your_path \ --output_dir save_results \ --nb_classes 2 --input_size 60 \ --data_set image_folder #测试 python main_finetune.py \ --model convnextv2_base \ --eval true \ --resume save_results/checkpoint-best.pth \ --input_size 60 \ --data_path /your_path \ --nb_classes 2 --data_set image_folder

相关新闻

MLS点云道路标线自动化处理:5步流程实现95%+提取精度(附PCL/OpenCV代码)

MLS点云道路标线自动化处理:5步流程实现95%+提取精度(附PCL/OpenCV代码)

MLS点云道路标线自动化处理:5步流程实现95%提取精度(附PCL/OpenCV代码)在自动驾驶与高精地图构建领域,道路标线的精确识别一直是核心技术难点之一。传统人工标注方式不仅效率低下,面对城市复杂路况时更难以保证一致性。…

2026/7/6 15:21:44阅读更多 →
告别游戏崩溃:XCOM 2模组管理器的智能解决方案

告别游戏崩溃:XCOM 2模组管理器的智能解决方案

告别游戏崩溃:XCOM 2模组管理器的智能解决方案 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2…

2026/7/6 15:21:44阅读更多 →
3DGS环境搭建_高斯泼溅算法gaussian-splatting

3DGS环境搭建_高斯泼溅算法gaussian-splatting

一 准备 终端选择:anaconda prompt(以管理员身份运行) 环境隔离:不要再base环境下安装包 二 流程 阶段一:创建纯净环境 1.conda create -n gaussian_splatting python3.9 -y(创建一个名为gs的独立环境&#xff0c…

2026/7/6 15:21:44阅读更多 →
ZheTian开发者指南:如何扩展和定制免杀功能模块

ZheTian开发者指南:如何扩展和定制免杀功能模块

ZheTian开发者指南:如何扩展和定制免杀功能模块 【免费下载链接】ZheTian ::ZheTian / 强大的免杀生成工具,Bypass All. 项目地址: https://gitcode.com/gh_mirrors/zh/ZheTian ZheTian是一款强大的免杀生成工具,专为红蓝对抗场景设计…

2026/7/6 19:07:12阅读更多 →
如何扩展pydata-sphinx-theme:自定义组件与主题的高级开发指南

如何扩展pydata-sphinx-theme:自定义组件与主题的高级开发指南

如何扩展pydata-sphinx-theme:自定义组件与主题的高级开发指南 【免费下载链接】pydata-sphinx-theme A clean, three-column Sphinx theme with Bootstrap for the PyData community 项目地址: https://gitcode.com/gh_mirrors/py/pydata-sphinx-theme pyda…

2026/7/6 19:07:12阅读更多 →
Obsidian Banners插件对比分析:为什么它是笔记美化的最佳选择

Obsidian Banners插件对比分析:为什么它是笔记美化的最佳选择

Obsidian Banners插件对比分析:为什么它是笔记美化的最佳选择 【免费下载链接】obsidian-banners An Obsidian plugin that adds banners to your notes 项目地址: https://gitcode.com/gh_mirrors/ob/obsidian-banners Obsidian Banners插件是一款专为Obsid…

2026/7/6 19:07:12阅读更多 →
使用Devbox和Nix配置CRDs-catalog开发环境:跨平台解决方案终极指南

使用Devbox和Nix配置CRDs-catalog开发环境:跨平台解决方案终极指南

使用Devbox和Nix配置CRDs-catalog开发环境:跨平台解决方案终极指南 【免费下载链接】CRDs-catalog Popular Kubernetes CRDs (CustomResourceDefinition) in JSON schema format. 项目地址: https://gitcode.com/gh_mirrors/cr/CRDs-catalog 在Kubernetes生态…

2026/7/6 19:07:12阅读更多 →
Docker 多阶段构建:镜像变小只是副作用

Docker 多阶段构建:镜像变小只是副作用

Docker 多阶段构建:镜像变小只是副作用 一、多阶段构建不只是为了压缩镜像 Docker 多阶段构建最常见的卖点是镜像变小。构建阶段装编译器、依赖、测试工具,运行阶段只保留产物和必要运行时。镜像确实会小很多,但这只是副作用。更重要的是把构…

2026/7/6 19:07:12阅读更多 →
DAC161S997在工业4-20mA电流环中的应用与优化

DAC161S997在工业4-20mA电流环中的应用与优化

1. 工业4-20mA电流环技术背景解析在工业自动化领域,4-20mA电流环技术已经持续应用了超过半个世纪,这种看似简单的模拟信号传输方式却展现出惊人的生命力。电流信号相比电压信号具有显著优势:抗干扰能力强,能够实现远距离传输&…

2026/7/6 19:02:11阅读更多 →
从GitHub安全案例解析常见漏洞与防护实践

从GitHub安全案例解析常见漏洞与防护实践

1. 项目概述:从GitHub Trending看安全实战 最近在GitHub Trending上看到一个项目,叫 skills4/skills ,它因为一些安全漏洞案例被大家讨论。这其实是一个挺典型的场景:一个旨在展示或教授某种技能的仓库,本身却成了安…

2026/7/6 4:26:20阅读更多 →
MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

# MLT 2026启示:因果推理与概率建模驱动下一代LLM应用## 一、背景与挑战:从“黑箱预测”到“可信推理”2026年6月,第7届机器学习与趋势国际会议(MLT 2026)将在悉尼召开。会议议程中,“因果与可解释机器学习…

2026/7/6 2:48:33阅读更多 →
通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

1. 项目概述与漏洞背景最近在梳理一些历史OA系统的安全风险时,通达OA v11.6版本中的一个老漏洞又进入了我的视线。这个漏洞位于/general/bi_design/appcenter/report_bi.func.php文件中,是一个典型的SQL注入点。虽然这个漏洞的利用方式看起来并不复杂&am…

2026/7/6 0:10:35阅读更多 →
Seraphine:基于LCU API的英雄联盟智能游戏助手技术解析与应用指南

Seraphine:基于LCU API的英雄联盟智能游戏助手技术解析与应用指南

Seraphine:基于LCU API的英雄联盟智能游戏助手技术解析与应用指南 【免费下载链接】Seraphine 英雄联盟战绩查询工具 项目地址: https://gitcode.com/gh_mirrors/se/Seraphine 技术架构先行:官方接口的合规应用 你是否曾在BP阶段手忙脚乱&#x…

2026/7/6 0:03:39阅读更多 →
多协议远程连接管理工具mRemoteNG:告别混乱,统一你的远程桌面管理

多协议远程连接管理工具mRemoteNG:告别混乱,统一你的远程桌面管理

多协议远程连接管理工具mRemoteNG:告别混乱,统一你的远程桌面管理 【免费下载链接】mRemoteNG mRemoteNG is the next generation of mRemote, open source, tabbed, multi-protocol, remote connections manager. 项目地址: https://gitcode.com/gh_m…

2026/7/6 0:03:39阅读更多 →
COUNT(DISTINCT) 与 GROUP BY 去重统计:5 亿数据量下的性能实测与选型指南

COUNT(DISTINCT) 与 GROUP BY 去重统计:5 亿数据量下的性能实测与选型指南

COUNT(DISTINCT) 与 GROUP BY 去重统计:5 亿数据量下的性能实测与选型指南在数据分析和处理领域,去重统计是最基础也是最频繁使用的操作之一。当数据量达到亿级规模时,不同的去重统计方法在性能上可能产生天壤之别。本文将基于 5 亿行数据的实…

2026/7/6 0:03:39阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/6 4:45:01阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/6 4:45:01阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/6 4:45:03阅读更多 →