no.10 EfficientNet V2

EfficientNet V2是发表在2021CVPR论文《EfficientNet V2:Smaller Models and Faster Training》

 这个时候的vision Transformer还没有几个人去改进,所以这边稍微逊色了一点。

这张表格给出了EfficientNet与传统(融合)的卷积网络,vision transformer的对比 


作者在v1中更关注准确率,参数数量以及FLOPs,但是理论计算量小代表不了推理速度,所以在v2中作者更关注模型的训练速度。

通过原文中给出的对比我们发现,确实有很大的优势。


 作者在v1中发现了几个存在的问题:

1,训练图像的尺寸很大的时候,训练速度非常的慢,不成正比

2,在网络浅层中使用Depthwise Convlutions速度会很慢

3,同等的放大每个stage是次优的

--------------------------------------------------------------------------------------------------------------------------------

1 第一个问题就直接降低训练图像的尺寸,不仅能够加快训练速度,还能增大Batch,在no.1讲过,batch越大,训练效果越好。

2 在我们实际的使用上,我们发现,虽然DW卷积理论上的计算量小,但是实际的速度没有想象的快。我觉得可能是因为并行化太多了,反而占用了太多memory。所以提出Fused--MBConv结构。

 

上图表明不能全部使用Fused-MBConv,使用多了也没用。可以通过表看出,Fused-MBConv是替换了浅层网络的MBConv模块。

3同等放大每个stage是次优的。。在EfficientNetV1中,每个stage的深度和宽度都是同等放大的。但每个stage对网络的训练速度以及参数数量的贡献并不相同,所以直接使用同等缩放的策略并不合理。在这篇文章中,作者采用了非均匀的缩放策略来缩放模型。


 v2网络架构:

不同点:
前几层使用Fused-MBConv模块。

使用较小的ratio,比如4,6。

偏向使用3x3的模块,v1有5x5的。

移除了v1中最后一个步距为1的stage8。

Fused-MBConv模块:

要注意:stride=1,输入与输出矩阵channel相同;当我们用捷径分支的时候才有Dropout;Dropout层不是我们使用的随机失活元素,这里的是随机失活stage的主分支。

 注意:这里的dropout层仅指Fused-MBConv模块以及MBConv模块中的dropout层,不包括最后全连接层前的dropout层。


 progressive Learning 渐进式学习策略。

 

 证明渐进学习策略是有效的,作者讲渐进学习策略应用到resnet和v1中,得到的结果是positive。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据您提供的引用内容,您遇到了两个问题:ModuleNotFoundError: No module named 'tensorflow' 和 AttributeError: module 'tensorflow.compat.v1' has no attribute 'contrib'。这些问题可能是由于您的TensorFlow安装不完整或版本不兼容导致的。 针对第一个问题,ModuleNotFoundError: No module named 'tensorflow',这意味着您的Python环境中没有安装TensorFlow模块。要解决这个问题,您可以尝试以下几个步骤: 1. 确保您已经正确安装了TensorFlow。您可以使用以下命令来安装TensorFlow: ```shell pip install tensorflow ``` 2. 如果您已经安装了TensorFlow,但仍然出现此错误,请确保您的Python环境与TensorFlow的版本兼容。您可以使用以下命令来检查TensorFlow的版本: ```shell python -c "import tensorflow as tf; print(tf.__version__)" ``` 3. 如果您的Python环境与TensorFlow的版本不兼容,您可以尝试升级或降级TensorFlow的版本,以使其与您的Python环境兼容。您可以使用以下命令来升级或降级TensorFlow的版本: ```shell pip install tensorflow==<desired_version> ``` 针对第二个问题,AttributeError: module 'tensorflow.compat.v1' has no attribute 'contrib',这意味着您正在尝试使用TensorFlow.compat.v1.contrib模块,但该模块在当前版本的TensorFlow中已被移除。要解决这个问题,您可以尝试以下几个步骤: 1. 首先,确保您的TensorFlow版本是最新的。您可以使用以下命令来升级TensorFlow: ```shell pip install --upgrade tensorflow ``` 2. 如果您的TensorFlow版本已经是最新的,但仍然出现此错误,请检查您的代码中是否使用了TensorFlow.compat.v1.contrib模块。如果是的话,您需要修改代码以适应当前版本的TensorFlow。您可以查看TensorFlow的官方文档或社区资源,了解如何迁移代码以适应新版本的TensorFlow。 综上所述,要解决No module named 'tensorflow._api.v2'的问题,您可以尝试安装或升级TensorFlow,并确保您的代码与当前版本的TensorFlow兼容。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值