效率网模型的重新实现。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多个Spring启动应用程序   jinternalframe Java内部框架调整大小事件侦听器?   java如何更改存储库生成的json数组的格式。弹簧靴中的findAll()   java连接到docker上托管的远程Spark群集   摆动错误:太阳。awt。形象ToolkitImage无法转换为java。awt。形象缓冲图像   java如何除法一个数字并将其转换为十进制,但不包括余数   c#同步逻辑,用于在代码或SQL中将项目列表持久化到数据库?   java Gson错误:“应为BEGIN_数组,但在第1行第2列路径处为BEGIN_对象”   java ObjectInputStream给出了奇怪的结果   java Android媒体播放器:Url设置不正确   java缺少多边形形状对象上的两个顶点   selenium webdriver如何使用simpledateformat在java中添加日期并以字符串形式存储输出   静态内部类中的java重写方法   java导出到Jar会更改文件层次结构   Java RuntimeException doInBackground()Android应用程序错误与Jsoup   摇摆系统。出来Java中的Println到JTextArea   Java返回方法使用的对象,而不是基对象   当JSON值为空时,java应用程序崩溃   java如何在循环中找到最小和最大的数字?