主要内容

importKerasNetwork

导入预先训练的Keras网络和权重

描述

例子

= importKerasNetwork (modelfile进口普里雷托镜流™-Keras网络及其重量modelfile

此功能需要用于张量流模型的深度学习工具箱™转换器金宝app支持包。如果没有安装此支金宝app持包,该函数将提供下载链接。

= importKerasNetwork (modelfile名称,值导入一个预先训练的TensorFlow-Keras网络及其权值,以及由一个或多个名称-值对参数指定的附加选项。

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

例子

全部折叠

下载并安装用于TensorFlow模型支持包的深度学习工具箱转换器。金宝app

typeimportKerasNetwork在命令行。

importKerasNetwork

如果未安装TensorFlow模型支持包的深度学习工具箱转换器,则该函数将提供到Add-On Explorer中所需支持包金宝app的链接。要安装支持包,请单击链接,然后金宝app单击安装.通过从模型文件导入网络,检查安装是否成功“digitsDAGnet.h5”在命令行。如果安装了所需的支持包,则该函数金宝app返回aDAGNetwork对象。

modelfile =.“digitsDAGnet.h5”;净= importKerasNetwork (modelfile)
警告:已保存的Keras网络不包含类。类将设置为分类(1:n),其中n是网络分类输出层中的类数。要指定类,请使用“类”参数。
net =具有属性的Dagnetwork:图层:[13x1 nnet.cnn.layer.layer]连接:[13x2表] InputNames:{'input_1'} OutputNames:{'classificationLayer_activation_1'}

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

modelfile =.“digitsDAGnet.h5”

导入网络。

净= importKerasNetwork (modelfile)
警告:已保存的Keras网络不包含类。类将设置为分类(1:n),其中n是网络分类输出层中的类数。要指定类,请使用“类”参数。
net =具有属性的Dagnetwork:图层:[13x1 nnet.cnn.layer.layer]连接:[13x2表] 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是网络分类输出层中的类数。要指定类,请使用“类”参数。
net =具有属性的Dagnetwork:图层:[13x1 nnet.cnn.layer.layer]连接:[13x2表] InputNames:{'input_1'} OutputNames:{'classificationLayer_activation_1'}

指定模型文件。

modelfile =.“digitsDAGnet.h5”

指定类名。

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

导入带有类名的Keras网络。

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

阅读图像进行分类。

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

使用预先训练的网络对图像进行分类。

标签=分类(网络,i);

显示图像和分类结果。

imshow(i)标题(['分类结果:'char(标签)))

图中包含一个坐标轴。具有标题分类结果的轴:5包含类型图像的对象。

输入参数

全部折叠

包含网络架构的模型文件的名称,可能还有权重,指定为字符向量或字符串标量。该文件必须在当前文件夹中,在MATLAB的一个文件夹中®路径,否则必须包含文件的完整路径或相对路径。

如果modelfile包括

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

  • 只有网络架构,那么它可以在HDF5或JSON中(. json)的格式。

如果modelfile仅包含网络架构,然后您必须使用HDF5文件中的权重,使用“WeightFile”名称-值对的论点。

示例:“digitsnet.h5”

数据类型:char|

名称-值对的观点

指定可选的逗号分隔的对名称,值论点。的名字参数名和价值为对应值。的名字必须出现在引号内。可以以任意顺序指定多个名称和值对参数name1,value1,...,namen,valuen

示例:importKerasNetwork (modelfile“OutputLayerType”、“分类”、“类”,类)从模型文件中导入网络modelfile,在keras图层末尾添加输出层,并指定班级作为输出层的类。

包含权重的文件名,指定为字符向量或字符串标量。举重必须在当前文件夹中,在MATLAB路径上的文件夹中,或者必须包含文件的完整或相对路径。

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

当时,函数附加到导入的网络体系结构末端的输出层类型modelfile没有指定损失函数,指定为“分类”'回归',或“pixelclassification”.附加A.pixelClassificationLayer(计算机视觉工具箱)对象需要计算机Vision Toolbox™。

如果是网络modelfile有多个输出,则不能使用此参数指定输出层类型。使用importKerasLayers代替。importKerasLayers为输出插入占位符层。导入之后,您可以使用findPlaceholderLayersreplaceLayer,分别。

示例:'outputlayertype','回归'

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

如果是网络modelfile有多个输入,那么您无法使用此参数指定输入大小。使用importKerasLayers代替。importKerasLayers插入输入的占位符层。导入之后,您可以使用findPlaceholderLayersreplaceLayer,分别。

示例:“ImageInputSize”,[28 28]

输出层的类,指定为分类向量、字符串数组、字符向量单元格数组或“汽车”.如果指定字符串数组或字符向量数组str,则软件将输出层的类设置为分类(str,str).如果“汽车”,然后该函数将类设置为分类(1:N),在哪里N为类数。

数据类型:char|分类||细胞

输出参数

全部折叠

普里拉斯网络,作为以下内容之一返回:

  • 如果Keras网络是类型的顺序,然后是A.SeriesNetwork对象。

  • 如果Keras网络是类型的模型,然后是A.DAGNetwork对象。

限制

  • importKerasNetwork金宝app支持Tensorflow-Keras版本如下:

    • 该功能完全支持TensorFlow-K金宝apperas 2.2.4版本。

    • 该函数提供了对TensorFlow-Keras版本2.2金宝app.5到2.4.0的有限支持。

更多关于

全部折叠

金宝app支持Keras层

importKerasNetwork金宝app支持以下TensorFlow-Keras层类型转换为内置MATLAB层,但有一些限制。

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

激活,带有激活名称:

  • 'elu'

  • “relu”

  • “线性”

  • 'softmax'

  • “乙状结肠”

  • “漂亮”

  • 的双曲正切

层数:

先进的激活:

  • ELU

  • Softmax

  • LeakyReLU

  • prelu.

层数:

AveragePooling2D 普通Pooling2dlayer.PaddingValue指定为“的意思是”
BatchNormalization batchNormalizationLayer
双向(LSTM(__)) bilstmLayer
衔接 depthConcatenationLayer
Conv2D convolution2dLayer
conv2dtranspose. transposedConv2dLayer
CuDNNGRU gruLayer
Cudnnlstm. lstmlayer.
密集的 fullyConnectedLayer
DepthwiseConv2D groupedConvolution2dLayer
辍学 dropoutLayer
嵌入 WordembeddingLayer.(文本分析工具箱)
nnet.keras.layer.flattencstylayer.
GlobalAveragePooling2D globalAveragePooling2dLayer
GlobalMaxPooling2D globalMaxPooling2dLayer
格勒乌 gruLayer
输入 imageInputLayersequenceInputLayer,或featureInputLayer.
LSTM lstmlayer.
MaxPooling2D maxPooling2dLayer
多功能层
SeparableConv2D groupedConvolution2dLayerconvolution2dLayer
TimeDistributed sequenceFoldingLayer在包裹层之前,然后sequenceUnfoldingLayer缠绕层后
UpSampling2D resize2dLayer(图像处理工具箱)
UpSampling3D resize3dlayer.(图像处理工具箱)
ZeroPadding2D nnet.keras.layer.zeropadding2dlayer.

*对于PReLU层,importKerasNetwork用向量元素的平均值替换向量值缩放参数。您可以在导入后将参数更改回矢量。例如,请参见进口keras prelu层

金宝app支持Keras Loss功能

importKerasNetwork金宝app支持以下Keras loss功能:

  • mean_squared_error

  • categorical_crossentropy

  • sparse_categorical_crossentropy

  • binary_crossentropy

提示

  • 如果网络包含一个层张量流模型的深度学习工具箱转换器不支持(见金宝app金宝app支持Keras层那个)importKerasNetwork返回错误消息。在这种情况下,您仍然可以使用importKerasLayers导入网络架构和权重。

  • 您可以导入具有多个输入和多个输出(MIMO)的Keras网络。使用importKerasNetwork如果网络包括用于输出的输入和损耗信息的输入大小信息。否则,使用importKerasLayers.的importKerasLayers函数为输入和输出插入占位符层。导入之后,您可以使用findPlaceholderLayersreplaceLayer,分别。导入MIMO Keras网络的工作流与导入MIMO ONNX™网络的工作流相同。例如,请参见导入并组装具有多个输出的ONNX网络.要了解具有多个输入和多个输出的深度学习网络,请参见多输入和多输出网络

  • 要使用预先训练的网络对新图像进行预测或迁移学习,必须以与用于训练导入模型的图像的预处理相同的方式对图像进行预处理。最常见的预处理步骤是调整图像大小,减去图像平均值,以及将图像从BGR图像转换为RGB图像。

    • 要调整图像大小,请使用imresize..例如,imresize(图像,[227,227,3])

    • 要将RGB转换为BGR格式,请使用翻转.例如,翻转(图片3)

    有关预处理图像进行培训和预测的更多信息,请参阅深度学习的图像预处理

选择功能

使用importKerasNetworkimportKerasLayers导入HDF5或JSON格式的TensorFlow-Keras网络。如果TensorFlow网络是保存的模型格式,则使用importtensorflownetwork.importTensorFlowLayers

兼容性的考虑

展开所有

不建议从R2018b开始

参考资料

[1]凯拉斯:Python Deep学习库https://keras.io

介绍了R2017b