Skip to main content

EfficientNet 模型重新实现。Keras 和 TensorFlow Keras。

项目描述

EfficientNet Keras(和 TensorFlow Keras)

PyPI 版本 下载

该存储库包含EfficientNet的 Keras(和 TensorFlow Keras)重新实现,这是一种轻量级卷积神经网络架构,可在 ImageNet 和其他五个常用的迁移学习上以更少的参数和 FLOPS 实现最先进的精度数据集。

代码库深受TensorFlow 实现的启发。

重要的!

2019 年 7 月 24 日有一个巨大的图书馆更新。现在 efficintnet 可以与两个框架一起使用:kerastensorflow.keras. 如果您有在该日期之前训练过的模型来加载它们,请使用 0.0.4 版本 (PyPI) 的效率网络。您可以使用回滚pip install -U efficientnet==0.0.4

目录

  1. 关于 EfficientNet 模型
  2. 例子
  3. 楷模
  4. 安装
  5. 经常问的问题
  6. 致谢

关于 EfficientNet 模型

EfficientNets 依靠 AutoML 和复合扩展在不影响资源效率的情况下实现卓越的性能。AutoML Mobile 框架帮助开发了移动设备大小的基线网络EfficientNet-B0,然后通过复合缩放方法对其进行改进以获得 EfficientNet-B1 到 B7。

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

  • 在高精度方案中,EfficientNet-B7 在 ImageNet 上以 66M 参数和 37B FLOPS 实现了最先进的 84.4% top-1 / 97.1% top-5 精度。同时,该模型比前任领导者 Gpipe 小 8.4 倍,CPU 推理速度快6.1 倍

  • 在中等精度范围内,EfficientNet-B1 比ResNet-152小 7.6 倍,CPU 推理速度快 5.7 倍,具有相似的 ImageNet 精度。

  • 与广泛使用的ResNet-50相比,EfficientNet-B4 在相似的 FLOPS 约束下将 top-1 准确率从 ResNet-50 的 76.3% 提高到 82.6% (+6.3%)。

例子

  • 初始化模型
# models can be build with Keras or Tensorflow frameworks
# use keras and tfkeras modules respectively
# efficientnet.keras / efficientnet.tfkeras
import efficientnet.keras as efn 

model = efn.EfficientNetB0(weights='imagenet')  # or weights='noisy-student'
  • 加载预训练的权重
# model use some custom objects, so before loading saved model
# import module your network was build with
# e.g. import efficientnet.keras / import efficientnet.tfkeras
import efficientnet.tfkeras
from tensorflow.keras.models import load_model

model = load_model('path/to/model.h5')

在此处查看在 Jupyter 笔记本中加载模型和进行推理的完整示例。

楷模

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

建筑学 @top1* 图像网 @top1* 吵闹的学生
高效网B0 0.772 0.788
高效网络B1 0.791 0.815
高效网络B2 0.802 0.824
高效网络B3 0.816 0.841
高效网络B4 0.830 0.853
高效网络B5 0.837 0.861
高效网络B6 0.841 0.864
高效网络B7 0.844 0.869

* - 转换模型的 topK 准确度得分(imagenetval集)

安装

要求

  • Keras >= 2.2.0/TensorFlow >= 1.12.0
  • keras_applications >= 1.0.7
  • scikit-image

从源安装

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

从 PyPI 安装

PyPI 稳定版

$ pip install -U efficientnet

PyPI 最新版本(支持 keras 和 tf.keras)

$ pip install -U --pre efficientnet

经常问的问题

  • 如何将原始 TensorFlow 检查点转换为 Keras HDF5?

选择目标目录(如dist)并从 repo 目录运行转换器脚本,如下所示:

$ ./scripts/convert_efficientnet.sh --target_dir dist

您还可以选择创建安装了所有依赖项的虚拟环境,方法是--make_venv=true在自毁临时位置而不是目标目录中添加和操作,方法是设置--tmp_working_dir=true.

致谢

我要感谢积极为此存储库做出贡献的社区成员:

  1. Sasha Illarionov ( @sdll ) 为权重转换准备自动化脚本
  2. Björn Barz ( @Callidior ) 用于 keras 和 tensorflow.keras 框架的模型代码适配

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

efficientnet-1.1.1.tar.gz (16.0 kB 查看哈希

已上传 source

内置分布

efficientnet-1.1.1-py3-none-any.whl (18.4 kB 查看哈希

已上传 py3