主要内容

importKerasnetwork.

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

描述

例子

= importKerasNetwork (modelfile进口预先训练的TensorFlow™-Keras网络及其权值modelfile

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

= importKerasNetwork (modelfile名称,价值使用一个或多个名称值对参数指定的附加选项导入预训练的Tensorflow-keras网络及其权重。

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

例子

全部收缩

下载并安装Deave Learning Toolbox Converter for TensoRFlow模型支持包。金宝app

类型importKerasnetwork.在命令行。

importKerasnetwork.

如果未安装TensoRFlow模型的深度学习工具箱转换器,则该函数在附加资源管理器中提供指向所需支持包的链接。金宝app要安装支持包,请单击“链接”,金宝app然后单击安装.通过从模型文件导入网络,检查安装是否成功'digitsdagnet.h5'在命令行。如果安装了所需的支持包,则该函数金宝app返回aDagnetwork.目的。

modelfile ='digitsdagnet.h5';净= importKerasNetwork (modelfile)
警告:保存的Keras网络不包括职业。将类设置为category (1:N),其中N为网络分类输出层的类数。要指定类,请使用' classes '参数。
net = DAGNetwork with properties: Layers: [13x1 nnet.cnn.layer.Layer] Connections: [13x2 table] InputNames: {'input_1'} OutputNames: {'ClassificationLayer_activation_1'}

指定要导入的文件。该文件digitsDAGnet.h5包含一条定向的非循环图卷积神经网络,用于分类数字图像。

modelfile ='digitsdagnet.h5'

导入网络。

净= importKerasNetwork (modelfile)
警告:保存的Keras网络不包括职业。将类设置为category (1:N),其中N为网络分类输出层的类数。要指定类,请使用' classes '参数。
net = DAGNetwork with properties: Layers: [13x1 nnet.cnn.layer.Layer] Connections: [13x2 table] InputNames: {'input_1'} OutputNames: {'ClassificationLayer_activation_1'}

绘制网络架构图。

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

图中包含一个轴对象。标题为DAG Network Architecture的axis对象包含一个graphplot类型的对象。

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

modelfile ='digitsdagnet.json';重量='digitsdagnet.weights.h5'

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

导入网络架构,从单独的文件导入权重。json文件没有输出层,也没有关于cost函数的信息。在导入文件时指定输出层类型。

网= importKerasNetwork (modelfile,'摇摇欲坠'权重,...“OutputLayerType”“分类”
警告:保存的Keras网络不包括职业。将类设置为category (1:N),其中N为网络分类输出层的类数。要指定类,请使用' classes '参数。
net = DAGNetwork with properties: Layers: [13x1 nnet.cnn.layer.Layer] Connections: [13x2 table] InputNames: {'input_1'} OutputNames: {'ClassificationLayer_activation_1'}

指定模型文件。

modelfile ='digitsdagnet.h5'

指定类名。

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

使用类名导入Keras网络。

网= importKerasNetwork (modelfile,'课程'类名);

阅读图像进行分类。

digitdatasetpath = fullfile(toolboxdir(“nnet”),“nndemos”'nndatasets''digitdataset');i = imread(fullfile(digitdatasetpath,“5”'image4009.png'));

使用佩带的网络对图像进行分类。

标签=分类(净,我);

显示图像和分类结果。

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

图中包含一个轴对象。分类结果:5包含一个类型为image的对象。

输入参数

全部收缩

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

如果modelfile包括

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

  • 只有网络架构,然后它可以是HDF5或JSON (. json)的格式。

如果modelfile只包含网络架构,则必须在HDF5文件中使用'摇摇欲坠'名称-值对的论点。

例子:“digitsnet.h5”

数据类型:字符|字符串

名称-值参数

指定可选的逗号分隔的对名称,价值参数。的名字参数名和价值是相应的价值。的名字必须出现在引号内。您可以以任何顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:importKerasnetwork(Modeloleile,'OutputLayerType','分类','类',类)从模型文件导入网络modelfile,在Keras层的末尾添加一个用于分类问题的输出层,并指定作为输出层的类。

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

例子:'tailfile','preefs.h5'

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

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

例子:“OutputLayerType”、“回归”

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

如果一个网络modelfile有多个输入,则不能使用此参数指定输入大小。使用importKeraslayers.代替。importKeraslayers.为输入插入占位符层。导入之后,您可以使用FindPlaceHolderLayers.replaceLayer,分别。

例子:'imageInputsize',[28 28]

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

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

输出参数

全部收缩

预先训练的Keras网络,返回如下:

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

  • 如果是Keras网络类型模型,然后是一个Dagnetwork.目的。

限制

  • importKerasnetwork.金宝app支持TensorFlow-Keras版本如下:

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

    • 该功能为Tensorflow-Keras版本2.2.5至金宝app2.4.0提供有限的支持。

更多关于

全部收缩

金宝app支持Keras层

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

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

激活,激活名称:

  • “elu”

  • 'relu'

  • “线性”

  • “softmax”

  • “乙状结肠”

  • “漂亮”

  • 'tanh'

层:

高级激活:

  • ELU

  • softmax.

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

  • Leaceryru.

  • PReLu

层:

AveragePooling1D averagePooling1dLayerPaddingValue指定为'意思'
AveragePooling2D averagePooling2dLayerPaddingValue指定为'意思'
BatchNormalization BatchnormalizationLayer.
双向(LSTM (__)) Bilstmlayer.
连接 depthConcatenationLayer
Conv1D Convolution1dlayer.
Conv2D Convolution2Dlayer.
Conv2DTranspose transposedconv2dlayer.
Cudnngru gruLayer
CuDNNLSTM lstmLayer
稠密 fullyConnectedLayer
DepthwiseConv2D groupedConvolution2dLayer
辍学 oploutlayer.
嵌入 wordEmbeddingLayer(文本分析工具箱)
扁平 nnet.keras.layer.FlattenCStyleLayer
GlobalaveragePooling1d. globalAveragePooling1dLayer
GlobalaveragePooling2d. globalAveragePooling2dLayer
GlobalMaxPool1D globalMaxPooling1dLayer
GlobalMaxPool2D globalmaxpooling2dlayer.
格勒乌 gruLayer
输入 imageInputLayersequenceInputlayer.,或featureInputLayer
LSTM lstmLayer
maxpool1d. maxPooling1dLayer
MaxPool2D maxPooling2dLayer
multiplicationLayer
SeparableConv2D groupedConvolution2dLayer或者Convolution2Dlayer.
TimeDistributed sequenceFoldingLayer在包装层之前,和sequenceUnfoldingLayer缠绕层后
UpSampling2D resize2dLayer(图像处理工具箱)
UpSampling3D resize3dLayer(图像处理工具箱)
Zeropadding1d. nnet.keras.layer.ZeroPadding1DLayer
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

在GPU上使用导入网络

importKerasnetwork.不能在GPU上执行。然而,importKerasnetwork.导入预训练的深度学习神经网络作为Dagnetwork.或者SeriesNetwork对象,可以在GPU上使用。

  • 您可以在CPU或GPU上使用分类.使用name-value参数指定硬件需求ExecutionEnvironment.对于具有多个输出的网络,使用预测函数。

  • 您可以在CPU或GPU上使用预测.使用name-value参数指定硬件需求ExecutionEnvironment.如果网络有多个输出,请指定name-value参数ReturnCategorical作为真的

  • 您可以使用CPU或GPU在CPU或GPU上培训导入的网络Trainnetwork..要指定培训选项,包括执行环境的选项,请使用培训选项函数。使用name-value参数指定硬件需求ExecutionEnvironment.有关如何加速培训的更多信息,请参阅在gpu和云上并行扩展深度学习

使用GPU需要并行计算工具箱™和支持的GPU设备。金宝app有关支持设备的信息,请参阅金宝appGPU支金宝app持情况(并行计算工具箱)

提示

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

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

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

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

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

    有关用于训练和预测的预处理图像的更多信息,请参见深度学习的图像预处理

替代功能

  • 使用importKerasnetwork.或者importKeraslayers.导入HDF5或JSON格式的TensorFlow-Keras网络。如果TensorFlow网络是保存的模型格式,则使用importTensorFlowNetwork或者importtensorflowlayers.

  • 如果您导入自定义TensorFlow-keras图层或软件无法将TensorFlow-Keras图层转换为同等内置MATLAB图层,则可以使用importTensorFlowNetwork或者importtensorflowlayers.,它试图生成一个自定义层。例如,importTensorFlowNetworkimporttensorflowlayers.当你导入TensorFlow-Keras时生成一个自定义层λ层。

兼容性考虑因素

全部展开

不推荐在R2018B中开始

参考文献

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

介绍了R2017b