主要内容

importKerasNetwork

进口pretrained Keras网络和权重

描述

例子

= importKerasNetwork (modelfile)进口pretrained TensorFlow™-Keras网络和其权重modelfile

这个函数需要深度学习工具箱™转换器TensorFlow模型万博1manbetx支持包。如果这种支持包没万博1manbetx有安装,功能提供了一个下载链接。

= importKerasNetwork (modelfile,名称,值)进口pretrained TensorFlow-Keras网络及其权重与附加选项指定一个或多个参数名称-值对。

例如,importKerasNetwork (modelfile WeightFile,重量)从模型文件导入网络modelfile从重量文件和权重权重。在这种情况下,modelfile可以在HDF5或JSON格式,重量必须是HDF5格式的文件。

例子

全部折叠

下载和安装的深度学习工具箱转换器TensorFlow模型支持包。万博1manbetx

类型importKerasNetwork在命令行中。

importKerasNetwork

如果深度学习工具箱为TensorFlow模型转换器支持包没有安装,那么函数提供了一个链接到需要在插件浏览器支持包。万博1manbetx安装支持包,单击该链接,然后单万博1manbetx击安装。检查安装成功导入网络的模型文件“digitsDAGnet.h5”在命令行中。如果所需的支持包安装,那么函数返万博1manbetx回DAGNetwork对象。

modelfile =“digitsDAGnet.h5”;净= importKerasNetwork (modelfile)
警告:保存Keras网络不包括类。类将被设置为分类(1:N),其中N是类的数量分类输出层的网络。指定的类,使用“类”的论点。
网= DAGNetwork属性:层:x1 nnet.cnn.layer.Layer[13]连接:[13 x2表]InputNames: {“input_1”} OutputNames: {“ClassificationLayer_activation_1”}

指定要导入的文件。该文件digitsDAGnet.h5包含一个有向无环图卷积神经网络分类图像的数字。

modelfile =“digitsDAGnet.h5”;

导入网络。

净= importKerasNetwork (modelfile)
警告:保存Keras网络不包括类。类将被设置为分类(1:N),其中N是类的数量分类输出层的网络。指定的类,使用“类”的论点。
网= DAGNetwork属性:层:x1 nnet.cnn.layer.Layer[13]连接:[13 x2表]InputNames: {“input_1”} OutputNames: {“ClassificationLayer_activation_1”}

绘制网络体系结构。

情节(净)标题(“DAG网络体系结构”)

图包含一个坐标轴对象。坐标轴对象与标题DAG网络体系结构包含一个graphplot类型的对象。

指定网络和文件导入的重量。

modelfile =“digitsDAGnet.json”;重量=“digitsDAGnet.weights.h5”;

这是一个有向无环图卷积神经网络训练的数字数据。

进口网络体系结构,从单独的文件导入权重。. json文件没有一个输出层或成本函数的信息。指定输出层类型当你导入的文件。

网= importKerasNetwork (modelfile,“WeightFile”权重,“OutputLayerType”,“分类”)
警告:保存Keras网络不包括类。类将被设置为分类(1:N),其中N是类的数量分类输出层的网络。指定的类,使用“类”的论点。
网= DAGNetwork属性:层:x1 nnet.cnn.layer.Layer[13]连接:[13 x2表]InputNames: {“input_1”} OutputNames: {“ClassificationLayer_activation_1”}

指定模型文件。

modelfile =“digitsDAGnet.h5”;

指定类名。

一会= {' 0 ',' 1 ',' 2 ',“3”,“4”,“5”,“6”,“7”,“8”,“9”};

导入Keras网络与类名。

网= importKerasNetwork (modelfile,“类”类名);

读取图像进行分类。

digitDatasetPath = fullfile (toolboxdir (“nnet”),“nndemos”,“nndatasets”,“DigitDataset”);我= imread (fullfile (digitDatasetPath,“5”,“image4009.png”));

使用pretrained网络分类的图像。

标签=分类(净,我);

显示图像的分类结果。

imshow (I)标题([的分类结果:char(标签)))

图包含一个坐标轴对象。坐标轴对象与标题分类结果:5包含一个类型的对象的形象。

输入参数

全部折叠

包含网络体系结构模型文件的名称,和可能的权重,指定为一个特征向量或字符串标量。文件必须在当前文件夹,在MATLAB上的一个文件夹中®路径,或者你必须包括完整或相对文件路径。

如果modelfile包括

  • 网络体系结构和权重,那么它必须在HDF5 (.h5)的格式。

  • 只有网络体系结构,它可以在HDF5或JSON (. json)的格式。

如果modelfile只包括网络架构,那么你必须供应HDF5文件中的权重,使用“WeightFile”名称-值对的论点。

例子:“digitsnet.h5”

数据类型:字符|字符串

名称-值参数

指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

R2021a之前,用逗号来分隔每一个名称和值,并附上的名字在报价。

例子:importKerasNetwork (modelfile“OutputLayerType”、“分类”、“类”,类)进口一个网络的模型文件modelfile,增加了一个输出层分类问题最终Keras层,并指定输出层的类。

名字包含权重的文件,指定为一个特征向量或字符串标量。WeightFile必须在当前文件夹,在MATLAB上一个文件夹路径,或者你必须包括一个完整或相对路径文件。

例子:“WeightFile”、“weights.h5”

类型的输出层函数附加到最后的进口时网络体系结构modelfile没有指定一个损失函数,指定为“分类”,“回归”,或“pixelclassification”。附加一个pixelClassificationLayer(计算机视觉工具箱)计算机视觉对象需要工具箱™。

如果一个网络modelfile有多个输出,那么你不能使用这个参数指定输出层类型。使用importKerasLayers代替。importKerasLayers插入占位符为输出层。导入后,您可以通过使用查找和替换占位符层findPlaceholderLayersreplaceLayer,分别。

例子:“OutputLayerType”、“回归”

网络的输入图像的大小,指定为一个向量的两个或三个数值对应(高度、宽度)对灰度图像和(高度、宽度、渠道)分别对彩色图像。网络时使用该信息modelfile没有指定输入的大小。

如果一个网络modelfile有多个输入,那么你不能使用这个参数指定输入的大小。使用importKerasLayers代替。importKerasLayers插入占位符为输入层。导入后,您可以通过使用查找和替换占位符层findPlaceholderLayersreplaceLayer,分别。

例子:“ImageInputSize”, [28 28]

输出层的类,指定为一个分类向量,字符串数组,单元阵列的特征向量,或“汽车”。如果您指定一个字符串数组或单元阵列的特征向量str,然后输出层的软件设置类分类(str, str)。如果“汽车”,然后设置类的函数分类(1:N),在那里N类的数量。

数据类型:字符|分类|字符串|细胞

输出参数

全部折叠

Pretrained Keras网络,作为以下之一:返回

  • 如果Keras网络类型顺序,然后是一个SeriesNetwork对象。

  • 如果Keras网络类型模型,然后是一个DAGNetwork对象。

限制

  • importKerasNetwork万博1manbetx支持TensorFlow-Keras版本如下:

    • 2.2.4函数完全支持TensorFl万博1manbetxow-Keras版本。

    • 函数提供了有限的支持TensorFlow-Keras测试万博1manbetx盒框2.2.5版本)。

更多关于

全部折叠

万博1manbetx支持Keras层

importKerasNetwork万博1manbetx支持以下TensorFlow-Keras层类型转换成内置MATLAB层,有一些局限性。

TensorFlow-Keras层 相应的深度学习工具箱层
添加 additionLayer

激活,激活的名字:

  • elu

  • gelu

  • 线性整流函数(Rectified Linear Unit)

  • 线性

  • softmax

  • 乙状结肠

  • 搞同性恋的

  • 双曲正切

层:

先进的激活:

  • ELU

  • Softmax

  • 线性整流函数(Rectified Linear Unit)

  • LeakyReLU

  • PReLu*

层:

AveragePooling1D averagePooling1dLayerPaddingValue指定为“的意思是”
AveragePooling2D averagePooling2dLayerPaddingValue指定为“的意思是”
BatchNormalization batchNormalizationLayer
双向(LSTM (__)) bilstmLayer
连接 depthConcatenationLayer
Conv1D convolution1dLayer
Conv2D convolution2dLayer
Conv2DTranspose transposedConv2dLayer
CuDNNGRU gruLayer
CuDNNLSTM lstmLayer
密集的 fullyConnectedLayer
DepthwiseConv2D groupedConvolution2dLayer
辍学 dropoutLayer
嵌入 wordEmbeddingLayer(文本分析工具箱)
nnet.keras.layer.FlattenCStyleLayer
GlobalAveragePooling1D globalAveragePooling1dLayer
GlobalAveragePooling2D globalAveragePooling2dLayer
GlobalMaxPool1D globalMaxPooling1dLayer
GlobalMaxPool2D globalMaxPooling2dLayer
格勒乌 gruLayer
输入 imageInputLayer,sequenceInputLayer,或featureInputLayer
LSTM lstmLayer
MaxPool1D maxPooling1dLayer
MaxPool2D maxPooling2dLayer
multiplicationLayer
SeparableConv2D groupedConvolution2dLayerconvolution2dLayer
TimeDistributed sequenceFoldingLayer之前的包裹层,sequenceUnfoldingLayer后包层
UpSampling2D resize2dLayer(图像处理工具箱)
UpSampling3D resize3dLayer(图像处理工具箱)
ZeroPadding1D nnet.keras.layer.ZeroPadding1DLayer
ZeroPadding2D nnet.keras.layer.ZeroPadding2DLayer

* PReLU层,importKerasNetwork取代了向量值尺度参数的平均向量的元素。你可以改变参数导入后回到一个向量。例如,看到的进口Keras PReLU层

万博1manbetx支持Keras损失函数

importKerasNetwork万博1manbetx支持以下Keras损失函数:

  • mean_squared_error

  • categorical_crossentropy

  • sparse_categorical_crossentropy

  • binary_crossentropy

对进口网络的生成代码

您可以使用MATLAB编码器™或GPU编码器™一起深度学习工具箱生成墨西哥人,独立的CPU, CUDA®墨西哥人,或独立的CUDA代码导入网络。有关更多信息,请参见代码生成

  • 使用MATLAB编码器与深度学习工具箱生成墨西哥人或独立的CPU的代码运行在桌面或嵌入式目标。您可以部署生成独立的代码,使用了英特尔®MKL-DNN库或手臂®计算库。或者,您可以生成通用的C或c++代码不调用第三方库函数。有关更多信息,请参见深度学习与MATLAB编码器(MATLAB编码器)

  • 使用GPU与深度学习工具箱编码器生成CUDA墨西哥人或独立的CUDA的代码运行在桌面或嵌入式目标。您可以部署生成独立的CUDA的代码使用CUDA深层神经网络库(cuDNN)的TensorRT™高性能推理库,或手臂计算库马里GPU。有关更多信息,请参见深度学习GPU编码器(GPU编码器)

importKerasNetwork返回网络作为一个DAGNetworkSeriesNetwork对象。这两个对象支持代码生成。万博1manbetx的更多信息MATLAB编码器和GPU编码器支持深度学习工万博1manbetx具箱对象,明白了万博1manbetx支持类(MATLAB编码器)万博1manbetx支持类(GPU编码器),分别。

您可以生成代码的任何进口网络层支持代码生成。万博1manbetx层支持代码生成的列表万博1manbetxMATLAB编码器和GPU编码器,看到万博1manbetx支持层(MATLAB编码器)万博1manbetx支持层(GPU编码器),分别。更多信息在每一个内置的代码生成功能和限制MATLAB层,请参见扩展功能部分的层。例如,请参见代码生成GPU的代码生成imageInputLayer

在GPU上使用进口网络

importKerasNetwork不执行GPU。然而,importKerasNetwork进口pretrained深度学习的神经网络DAGNetworkSeriesNetwork对象,您可以使用GPU。

  • 您可以进行预测与进口网络使用的CPU或GPU分类。使用名称-值参数指定的硬件需求ExecutionEnvironment。对于多个输出的网络,使用预测函数。

  • 您可以进行预测与进口网络使用的CPU或GPU预测。使用名称-值参数指定的硬件需求ExecutionEnvironment。如果网络有多个输出,指定名称的论点ReturnCategorical作为真正的

  • 你可以训练进口网络使用一个CPU或GPUtrainNetwork。指定训练选项,包括选项执行环境,使用trainingOptions函数。使用名称-值参数指定的硬件需求ExecutionEnvironment。如何加快培训更多的信息,请参阅并行扩展深度学习,在gpu上,在云端

使用GPU需要并行计算工具箱™许可和支持GPU设备。万博1manbetx支持设备的信息,请参阅万博1manbetxGPU计算的需求(并行计算工具箱)

提示

  • 如果网络包含一层深度学习工具箱转换器TensorFlow模型不支持(见万博1manbetx万博1manbetx支持Keras层),然后importKerasNetwork返回一个错误消息。在这种情况下,您仍然可以使用importKerasLayers导入网络体系结构和权重。

  • 您可以导入一个Keras网络具有多个输入和多个输出(MIMO)。使用importKerasNetwork如果网络包括输入大小信息的输入和输出的信息损失。否则,使用importKerasLayers。的importKerasLayers输入和输出函数插入占位符层。导入后,您可以通过使用查找和替换占位符层findPlaceholderLayersreplaceLayer,分别。工作流针对进口MIMO Keras网络是一样的工作流了进口ONNX™网络。例如,看到的导入和组装ONNX网络与多个输出。学习深入学习网络具有多个输入和多个输出,明白了多和多输出网络

  • 使用pretrained网络预测或转让学习新的图片,你必须进行预处理图像以同样的方式用于火车导入模型的图像预处理。最常见的预处理步骤调整图片大小,图像减去平均值,将图像从BGR格式转换为RGB格式。

    • 调整图像,使用imresize。例如,[3]227227年imresize(图片)

    • 将图像从RGB到BGR格式,使用翻转。例如,翻转(图片3)

    更多信息预处理图像进行训练和预测,明白了预处理图像深度学习

  • MATLAB使用集中的索引,而Python®使用从零开始的索引。换句话说,在数组第一个元素的索引1和0在MATLAB和Python,分别。MATLAB索引的更多信息,请参阅数组索引。在MATLAB中,使用数组索引(印第安纳州)在Python中,创建数组转换为印第安纳州+ 1

  • 更多的技巧,明白了建议从TensorFlow进口模型,PyTorch ONNX

选择功能

  • 使用importKerasNetworkimportKerasLayers进口在HDF5 TensorFlow-Keras网络或JSON格式。如果TensorFlow网络模型格式保存,使用importTensorFlowNetworkimportTensorFlowLayers

  • 如果你导入一个定制TensorFlow-Keras层或如果软件不能TensorFlow-Keras层转化为一个等价的内置MATLAB层,您可以使用importTensorFlowNetworkimportTensorFlowLayers,来生成一个自定义层。例如,importTensorFlowNetworkimportTensorFlowLayers当你导入TensorFlow-Keras生成一个自定义层λ层。

引用

[1]Keras: Python深度学习库https://keras.io

版本历史

介绍了R2017b

全部展开