96SEO 2026-02-20 07:51 22
强Cutout和MixupEMA项目结构计算mean和std生成数据集

https://arxiv.org/pdf/2403.19967
Operation这是一种通过元素级乘法融合不同子空间特征的方法通过元素级乘法类似于“星”形符号的乘法操作将不同子空间的特征进行融合从而在多个研究领域中展现出出色的性能和效率。
星操作在自然语言处理NLP和计算机视觉CV等多个领域中都得到了成功应用。
例如在自然语言处理中Monarch
Hierarchy和GLU等模型都采用了星操作在计算机视觉中FocalNet、HorNet和VAN等模型也利用了星操作进行特征融合。
尽管星操作在多个领域中都取得了显著成果但其背后的基本原理尚未得到全面分析和验证。
StarNet通过深入探究星操作的细节发现星操作具有将输入映射到极高维、非线性特征空间的能力。
这种映射方式与传统增加网络宽度的方法不同而是通过跨通道特征对乘实现了一种类似于多项式核函数的非线性高维映射。
当将星操作融入神经网络并堆叠多层时每一层都使隐含的维度复杂度呈指数级增长。
这种高效的特征融合方式使得星操作能够在紧凑的特征空间内实现近乎无限的维度从而极大地提高了模型的表示能力和性能。
本文使用StarNet模型实现图像分类任务模型选择starnet_s1在植物幼苗分类任务ACC达到了95%。
如何使用数据增强包括transforms的增强、CutOut、MixUp、CutMix等增强手段如何实现StarNet模型实现训练如何使用pytorch自带混合精度如何使用梯度裁剪防止梯度爆炸如何使用DP多显卡训练如何绘制loss和acc曲线如何生成val的测评报告如何编写测试脚本测试测试集如何使用余弦退火策略调整学习率如何使用AverageMeter类统计ACC和loss等自定义变量如何理解和统计ACC1和ACC5如何使用EMA
如果基础薄弱对上面的这些功能难以理解可以看我的专栏经典主干网络精讲与实战
为了提高成绩我在代码中加入Cutout和Mixup这两种增强方式。
实现这两种增强需要安装torchtoolbox。
安装命令
torchtoolboxCutout实现在transforms中。
transforms.Compose([transforms.Resize((224,
224)),Cutout(),transforms.ToTensor(),transforms.Normalize([0.5,
是一种在图像分类任务中常用的数据增强技术它通过将两张图像以及其对应的标签进行线性组合来生成新的数据和标签。
Average是指数移动平均值。
在深度学习中的做法是保存历史的一份参数在一定训练阶段后拿历史的参数给目前学习的参数做一次平滑。
具体实现如下
logging.getLogger(__name__)class
deepcopy(model)self.ema.eval()self.decay
device:self.ema.to(devicedevice)self.ema_has_module
resume:self._load_checkpoint(resume)for
self.ema.parameters():p.requires_grad_(False)def
checkpoint[state_dict_ema].items():#
vself.ema.load_state_dict(new_state_dict)_logger.info(Loaded
state_dict_ema)else:_logger.warning(Failed
self.ema.state_dict().items():if
model_v.to(deviceself.device)ema_v.copy_(ema_v
ModelEma(model_ft,decaymodel_ema_decay,devicecpu,resumeresume)#
test_loader)针对没有预训练的模型容易出现EMA不上分的情况这点大家要注意啊
└─test.pymean_std.py计算mean和std的值。
为了使模型更加快速的收敛我们需要计算出mean和std的值新建mean_std.py,插入代码
get_mean_and_std(train_data):train_loader
torch.utils.data.DataLoader(train_data,
num_workers0,pin_memoryTrue)mean
:].std()mean.div_(len(train_data))std.div_(len(train_data))return
transformtransforms.ToTensor())print(get_mean_and_std(train_dataset))数据集结构
beetpytorch和keras默认加载方式是ImageNet数据集格式格式是
shutilimage_listglob.glob(data1/*/*.png)
os.path.exists(file_dir):print(true)#os.rmdir(file_dir)shutil.rmtree(file_dir)#删除再建立os.makedirs(file_dir)
train_rootos.path.join(file_dir,train_dir)
val_rootos.path.join(file_dir,val_dir)
trainval_files:file_classfile.replace(\\,/).split(/)[-2]file_namefile.replace(\\,/).split(/)[-1]file_classos.path.join(train_root,file_class)if
os.path.isdir(file_class):os.makedirs(file_class)shutil.copy(file,
val_files:file_classfile.replace(\\,/).split(/)[-2]file_namefile.replace(\\,/).split(/)[-1]file_classos.path.join(val_root,file_class)if
os.path.isdir(file_class):os.makedirs(file_class)shutil.copy(file,
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback