模型导入概述
Keras模型导入为导入最初用Keras配置和训练的神经网络模型提供了例程,Keras是一个流行的Python深度学习库。
一旦你的模型导入到DL4J,我们的整个生产栈是由你来处理的。我们支持导入所有的Keras模型类型、大多数层和几乎所有的实用功能。请在这里查看支持的Keras特性的完整列表。
要导入Keras模型,首先需要创建和序列化这样的模型。这里有一个你可以使用的简单例子。该模型是一个简单的MLP,它采用长度为100的小批量向量,具有两个密集层,并预测总共10个类别。在定义模型之后,我们将其序列化为HDF5格式。
如果将这个模型文件(simple_mlp.h5
)放到项目的资源文件夹的根目录中,则可以将Keras模型加载为DL4J 的 MultiLayerNetwork,如下所示
就是这样!KerasModelImport是模型导入的主要入口点,类负责在内部将Keras映射到DL4J概念。作为用户,你只需要提供你的模型文件,请参阅我们的入门指南,以了解将Keras模型加载到DL4J中的更多细节和选项。
现在可以使用导入的模型进行推断(这里使用简单的数据来简化)
以下是你如何在DL4J中为你导入的模型做训练:
在我们的DL4J示例中可以找到刚才所示的完整示例。
要在现有项目中使用Keras模型导入,只需要将下列依赖项添加到pom.xml中。
如果首先需要开始一个项目,请考虑克隆DL4J示例,并按照仓库中的说明来构建项目。
DL4J Keras 模型导入与后端无关。 不管你选择哪一个后端 (TensorFlow, Theano, CNTK), 你的模号可以导入DL4J。
我们支持为越来越多的应用程序导入,在这里查看当前所覆盖的模型的完整列表。这些应用包括
Deep convolutional and Wasserstein GANs
UNET
ResNet50
SqueezeNet
MobileNet
Inception
Xception
IncompatibleKerasConfigurationException
信息说明你正在尝试导入一个当前不被DL4J支持的Keras模型(要么因为模型导入不覆盖它,要么DL4J不实现该层或特征)。
一旦导入了模型,我们就推荐我们自己的“ModelSerializer
”类来进一步保存和重新加载模型。
你可以通过访问DL4J gitter频道进一步咨询。你可能会考虑通过Github来提交一个特性请求,这样这个缺失的功能可以放在DL4J开发路线图上,或者甚至向我们发送一个带有必要更改的pull请求!
Keras是用Python编写的一个流行的、用户友好的深度学习库。Keras的直观API使得Python轻松地定义和运行你的深度学习模型。Keras允许你选择它在哪个底层库上运行,但是为每个这样的后端提供了统一的API。目前,Keras支持Tensorflow、CNTK和Theano后端,但是Skymind也在为Keras开发ND4J后端。
一个公司的生产系统和它的数据科学家的实验设置之间经常有差距。Keras模型导入允许数据科学家用Python编写他们的模型,但是仍然与生产栈无缝集成。
Keras模型导入主要针对在Python中熟悉用Keras编写模型的用户。通过模型导入,你可以通过允许用户将模型导入DL4J生态圈以进行进一步的训练或评估,从而将Python模型带到生产中。
当项目的试验阶段完成并且需要将模型交付生产时,你应该使用这个模块。Skymind商业支持Keras在企业中的实现。