EfficientNet 模型重新实现。Keras 和 TensorFlow Keras。
项目描述
EfficientNet Keras(和 TensorFlow Keras)
该存储库包含EfficientNet的 Keras(和 TensorFlow Keras)重新实现,这是一种轻量级卷积神经网络架构,可在 ImageNet 和其他五个常用的迁移学习上以更少的参数和 FLOPS 实现最先进的精度数据集。
代码库深受TensorFlow 实现的启发。
重要的!
2019 年 7 月 24 日有一个巨大的图书馆更新。现在 efficintnet 可以与两个框架一起使用:keras
和tensorflow.keras
. 如果您有在该日期之前训练过的模型来加载它们,请使用 0.0.4 版本 (PyPI) 的效率网络。您可以使用回滚pip install -U efficientnet==0.0.4
。
目录
关于 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
.
致谢
我要感谢积极为此存储库做出贡献的社区成员:
- Sasha Illarionov ( @sdll ) 为权重转换准备自动化脚本
- Björn Barz ( @Callidior ) 用于 keras 和 tensorflow.keras 框架的模型代码适配
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
内置分布
Effectivenet-1.1.1- py3 -none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 6967fcdaab2074f96228f684dad0628febe622a59181b4a28aaca1251f1b8784 |
|
MD5 | ef20159b40c5c5944c0a267d05e0ed3c |
|
布莱克2-256 | 539784f88e581d6ac86dcf1ab347c497c4c568c38784e3a2bd659b96912ab793 |