效率网模型的重新实现。Keras。

efficientnet的Python项目详细描述


效率和Keras

这个存储库包含了efficientnet的keras重新实现,这是一个轻量级的卷积神经网络架构,在imagenet和 其他五个常用的转移学习数据集。

代码库很大程度上受到了TensorFlow implementation的启发。

目录

  1. About EfficientNet Models
  2. Examples
  3. Models
  4. Installation
  5. Frequently Asked Questions

关于efficientnet模型

效率网络依赖于automl和复合缩放以在不影响资源效率的情况下获得优异的性能。AutoML Mobile framework帮助开发了一个移动大小的基线网络,efficientnet-b0,然后通过复合缩放方法对其进行改进以获得efficientnet-b1到b7的效率。

效率网络在ImageNet上实现最先进的精度,效率提高一个数量级:

  • 在高精度领域,efficientnet-b7以66m参数和37b触发器在imagenet上达到了84.4%的top-1/97.1%的top-5精度。同时,该模型比前领导人Gpipe小8.4倍,CPU推理速度快6.1倍。

  • 在中等精度的情况下,效率net-b1比ResNet-152小7.6倍,cpu推断速度快5.7倍,成像网精度相近。

  • 与广泛使用的ResNet-50相比,efficientnet-b4在相似的flops约束下,将前1位精度从resnet-50的76.3%提高到82.6%(+6.3%)。

示例

  • 初始化模型
fromefficientnetimportEfficientNetB0model=EfficientNetB0(weights='imagenet')
  • 加载预先训练的重量
fromefficientnetimportload_modelmodel=load_model('path/to/model.h5')

请参阅jupyter笔记本here中加载模型和进行推理的完整示例。

模型

使用由作者提供的检查点转换的预训练权重,每个模型变量的性能如下:

Architecture@top1*@top5*Weights
EfficientNetB00.76680.9312+
EfficientNetB10.78630.9418+
EfficientNetB20.79680.9475+
EfficientNetB30.80830.9531+
EfficientNetB40.82590.9612+
EfficientNetB50.83090.9646+
EfficientNetB6---
EfficientNetB7---

*-转换模型(imagenetval集)的topk精度得分

安装

要求

  • keras >= 2.2.0+tensorflow
  • scikit-image

从源安装

pip install -U git+https://github.com/qubvel/efficientnet

从PyPI安装

pip install -U efficientnet

常见问题

  • 如何将原来的tensorflow检查点转换为keras hdf5?

选择目标目录(如dist),并从repo目录运行converter script,如下所示:

./scripts/convert_efficientnet.sh --target_dir dist

您还可以选择通过添加--make_venv=true创建包含所有依赖项的虚拟环境,并通过设置--tmp_working_dir=true在自毁临时位置而不是目标目录中操作。

  • 为什么还不支持b6和b7模型变体?

B6-B7的重量尚未提供,但可能很快就会出现。按照issue进行更新。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
如何在Java和Javascript之间共享常量   c#无法使用Gson反序列化字节[]   如果字符串是实十进制数字,则在Java中仅显示十进制数字   与Android Studio的java FireBase同步失败   web应用程序的Java Oracle数据库更改通知问题   数组中缺少整数的java嵌套循环   zos在z/os上以TOD格式(一天中的时间)转换Java时间戳   java JAXB未根据注释生成XML(JDK 1.7)   java使用Twitter4j和Geolocation查找在该地区发布推文的用户,但如何获取用户ID?   在Libgdx中实现简单运动模糊的java意外结果   java在Android数据库中插入另一个EditText值?   java标准偏差数组(我的算法错误)   java如何修复M1 Mac的Ant javascript标记?   java遍历树标记值的长度   java理解Springboot中的Cron,自动发送电子邮件   java如何将“Data.Json”文件从资产保存到内部存储器,然后将其用于读/写   java代码在编写FirstDuplicate方法时会遇到时间限制问题   java将HTML转换为PDF并将其添加到段落中   javascript css()未设置正文标记的背景属性