exportNetworkToTensorFlow
描述
exportNetworkToTensorFlow (
MATLAB的出口®深入学习网络净
,modelPackage
)净
并将其保存为一个TensorFlow™模型在Python®包modelPackage
。信息如何加载TensorFlow模型在Python中,看到的负载输出TensorFlow模型。
的exportNetworkToTensorFlow
功能要求深度学习工具箱™转换器TensorFlow模型。如果这种支持包没金宝app有安装exportNetworkToTensorFlow
提供一个下载链接。
exportNetworkToTensorFlow (
出口MATLAB深度学习层图lgraph
,modelPackage
)lgraph
并将其保存为一个TensorFlow模型在Python包modelPackage
。
如果MATLAB网络或层图包含自定义或内置MATLAB层exportNetworkToTensorFlow
不能转换为一个TensorFlow层,exportNetworkToTensorFlow
函数出口这一层作为一个自定义TensorFlow层。MATLAB层的更多信息exportNetworkToTensorFlow
可以转换为TensorFlow层,看到了吗TensorF金宝applow层支持出口。例如,看到的出口与自定义层TensorFlow层图。
例子
出口网络TensorFlow
拯救一个MATLAB作为TensorFlow深入学习网络模型使用exportNetworkToTensorFlow
函数。
下载和安装的深度学习工具箱转换器TensorFlow模型支持包。金宝app您可以输入exportNetworkToTensorFlow
在命令提示符处,检查是否支持包安装。金宝app如果支持包没有金宝app安装,那么该函数提供了一个链接到需要在插件浏览器支持包。安装支持包,单击该链接,然后单金宝app击安装。
加载pretrainedsqueezenet
卷积神经网络作为一个DAGNetwork
对象。
网= squeezenet
网= DAGNetwork属性:层:x1 nnet.cnn.layer.Layer[68]连接:[75 x2表]InputNames:{“数据”}OutputNames: {“ClassificationLayer_predictions”}
出口网络净
TensorFlow。的exportNetworkToTensorFlow
函数保存TensorFlow模型在Python包myModel
。
exportNetworkToTensorFlow(净,“myModel”)
在Python中运行这段代码来加载TensorFlow模型导出的myModel
包中。
进口myModel模型= myModel.load_model ()
TensorFlow保存导出的模型SavedModel
格式。储蓄模型
在SavedModel
格式是可选的。您可以执行直接与深度学习工作流程模型
。为例,展示了如何将一个图像与出口TensorFlow模型,明白了出口网络TensorFlow和图像进行分类。
model.save (“myModelTF”)
出口网络TensorFlow和图像进行分类
使用MATLAB网络对图像进行分类。保存网络作为TensorFlow模型并使用TensorFlow模型相同的图像进行分类。
在MATLAB图像进行分类
加载pretrainedsqueezenet
卷积网络DAGNetwork
对象。
网= squeezenet
网= DAGNetwork属性:层:x1 nnet.cnn.layer.Layer[68]连接:[75 x2表]InputNames:{“数据”}OutputNames: {“ClassificationLayer_predictions”}
指定类名。
一会= net.Layers . class(结束);
读你想要的图像分类。调整图像的输入规模网络。
我= imread (“peppers.png”);InputSize = net.Layers (1) .InputSize;我= imresize (Im, InputSize (1:2));
预测类标签和分类的分数。
(标签,分数)=(净,Im)进行分类;
显示图像的分类标签。
imshow (Im)标题(类名(标签),字形大小= 12)
出口网络和图像数据
出口网络净
TensorFlow。的exportNetworkToTensorFlow
函数保存TensorFlow模型在Python包myModel
。
exportNetworkToTensorFlow(净,“myModel”)
排列的二维图像数据深度学习工具箱™排序(HWCN
)到TensorFlow排序(NHWC
),H
,W
,C
高度,宽度,和图像的通道数,分别和N
是图片的数量。保存垫的图片文件。
ImTF =排列(Im, [4, 1, 2, 3]);文件名=“peppers.mat”;保存(文件名,“ImTF”)
与出口TensorFlow模型图像进行分类
在Python中运行这段代码来加载出口TensorFlow模型和使用模型的图像分类。
负载从Python包导出的模型myModel
。
进口myModel模型= myModel.load_model ()
导出模型的图像进行分类。为更多的信息关于如何比较预测结果在MATLAB和TensorFlow之间,明白了推理比较TensorFlow和进口网络图像分类。
score_tf = model.predict (ImTF)
出口未经训练的TensorFlow层图
出口一个未经训练的层图TensorFlow和火车出口TensorFlow模型。
创建图层图表
创建一个长期短期记忆(LSTM)网络对序列数据进行分类。LSTM网络以序列数据作为输入,使预测基于单个时间序列数据的步骤。
inputSize = 12;numHiddenUnits = 100;numClasses = 9;层= [sequenceInputLayer inputSize bilstmLayer (numHiddenUnits OutputMode =“最后一次”)fullyConnectedLayer (numClasses) softmaxLayer];lgraph = layerGraph(层);
创建的训练数据集
加载日本元音训练数据集。XTrain
是一种含有270维序列12单元阵列和可变长度。YTrain
是一个分类向量的标签“1”,“2”,…”9”,对应于九个扬声器。
[XTrain, YTrain] = japaneseVowelsTrainData;
准备的序列数据XTrain
填充。有关更多信息,请参见使用深度学习序列分类。
numObservations =元素个数(XTrain);为i = 1: numObservations = XTrain序列{};sequenceLengths (i) =(序列,2)大小;结束[sequenceLengths, idx] = (sequenceLengths)进行排序;XTrain = XTrain (idx);YTrain = YTrain (idx);
垫XTrain
第二个维度。
XTrain = padsequences (XTrain 2);
排列的序列数据深度学习工具箱™排序(CSN
)到TensorFlow排序(国家安全委员会
),C
的数量的特征序列,年代
是序列长度,N
是观测序列的数量。将训练数据保存到一个垫子文件。
XTrain =排列(XTrain (3,2,1));YTrain双(YTrain) = 1;文件名=“training_data.mat”;保存(文件名,“XTrain”,“YTrain”)
出口TensorFlow层图
导出层图lgraph
TensorFlow。的exportNetworkToTensorFlow
函数保存TensorFlow模型在Python包myModel
。
exportNetworkToTensorFlow (lgraph“myModel”)
火车出口TensorFlow模型
在Python中运行这段代码加载从Python包导出的模型myModel
。你可以编译和火车在Python中导出的模型。训练模型
使用训练数据training_data.mat
。为更多的信息关于如何从垫文件数据加载到Python,明白了推理比较TensorFlow和进口网络图像分类。
进口myModel模型= myModel.load_model ()
出口与自定义层TensorFlow层图
出口一层图,其中包含一个MATLAB定制层,TensorFlow。
创建图层图表
创建一个PReLU层通过定义自定义层preluLayer
。显示自定义层的定义。
类型preluLayer.m
classdef preluLayer < nnet.layer。层% Example custom PReLU layer. properties (Learnable) % Layer learnable parameters. % Scaling coefficient. Alpha end methods function layer = preluLayer(args) % layer = preluLayer creates a PReLU layer. % % layer = preluLayer(numChannels,Name=name) also specifies the % layer name. arguments args.Name = ""; end % Set layer name. layer.Name = args.Name; % Set layer description. layer.Description = "PReLU"; end function layer = initialize(layer,layout) % layer = initialize(layer,layout) initializes the learnable % parameters of the layer for the specified input layout. % Skip initialization of nonempty parameters. if ~isempty(layer.Alpha) return end % Input data size. sz = layout.Size; ndims = numel(sz); % Find number of channels. idx = finddim(layout,"C"); numChannels = sz(idx); % Initialize Alpha. szAlpha = ones(1,ndims); szAlpha(idx) = numChannels; layer.Alpha = rand(szAlpha); end function Z = predict(layer, X) % Z = predict(layer, X) forwards the input data X through the % layer and outputs the result Z. Z = max(0, X) + layer.Alpha .* min(0, X); end end end
创建一个层图。
层= [imageInputLayer ([31 53 3], Name =“图像”归一化=“没有”)preluLayer (Name =“prelu”)regressionLayer);lgraph = layerGraph(层);
出口TensorFlow层图
导出层图lgraph
TensorFlow。的exportNetworkToTensorFlow
函数保存TensorFlow模型在Python包myModel
和自定义层的定义customLayers
文件夹的myModel
包中。
exportNetworkToTensorFlow (lgraph“myModel”)
警告:一层一层“prelu”:类“preluLayer”出口到一个不完整的TensorFlow定制层文件。自定义图层定义必须完成或文件之前必须更换模型可以加载到TensorFlow。
显示TensorFlow自定义层的定义preluLayer.py
。
类型。/ myModel / customLayers / preluLayer.py
#这个文件是由#深学习MATLAB工具箱转换器TensorFlow模型。# 03 - 3月- 2023年09:03:13进口tensorflow tf进口sys #删除这条线完成后层定义。类preluLayer (tf.keras.layers.Layer): #添加任何额外的层号hyperparameters构造函数的参数列表如下。def __init__(自我,Alpha_Shape_ = None, name = None):超级(preluLayer,自我). __init__ (name =名称)#可学的参数:这些都是出口从MATLAB和将被自动装载重量文件:自我。α=特遣部队。变量(name =“阿尔法”,initial_value = tf.zeros (Alpha_Shape_),可训练的= True) def(自我,input1): #添加代码来实现层的传球前进。#输入张量格式(s)是:BSSC #张量的输出格式(s): B =批BSSC #, C =频道,T =时间,s =空间(的高度、宽度、深度,…)#删除以下三行完成后自定义层定义:打印(“警告:load_model():在加载模型之前,您必须完成的定义自定义层preluLayer customLayers文件夹。”)打印系统(“退出……”)。退出(见上面的警告消息。)返回output1
负载输出层图
本节描述的步骤,您必须执行在Python中加载出口TensorFlow模型。
编辑的定义preluLayer.py
通过实现向前计算调用
。
def调用(自我,input1): output1 = tf.math.maximum (input1, 0.0) +自我。α* tf.math.minimum (0.0, input1)返回output1
删除行preluLayer.py
指示的文件中的注释。查看更新自定义层preluLayer.py
。
进口tensorflow tf类preluLayer (tf.keras.layers.Layer): #添加任何额外的层号hyperparameters构造函数的参数列表如下。def __init__(自我,Alpha_Shape_ = None, name = None):超级(preluLayer,自我). __init__ (name =名称)#可学的参数:这些都是出口从MATLAB和将被自动装载重量文件:自我。α=特遣部队。变量(name =“阿尔法”,initial_value = tf.zeros (Alpha_Shape_),可训练的= True) def(自我,input1): output1 = tf.math.maximum (input1, 0.0) +自我。α* tf.math.minimum (0.0, input1)返回output1
在本例中,您只需要编辑preluLayer.py
。在其他情况下,您可能需要编辑model.py
通过自定义层调用的参数。
加载模型之前,您可能需要重新启动Python内核的更改生效。加载模型从Python包myModel
。
进口myModel模型= myModel.load_model ()
输入参数
净
- - - - - -深入学习网络工具箱
SeriesNetwork
对象|DAGNetwork
对象|dlnetwork
对象
深入学习网络工具箱,指定为一个SeriesNetwork
对象,DAGNetwork
对象,或dlnetwork
对象。
你可以得到一个训练有素的网络:
使用深度学习工具箱函数加载pretrained网络。例如,使用
efficientnetb0
函数。下载的pretrained网络MATLAB深学习模型中心。
训练你自己的网络。使用
trainNetwork
培养一个DAGNetwork
或SeriesNetwork
对象。使用自定义训练循环训练dlnetwork
对象。
您还可以导出一个初始化dlnetwork
反对TensorFlow。
modelPackage
- - - - - -Python包包含导出模型的名称
字符串标量|特征向量
Python包的名称包含出口TensorFlow模型,指定为一个字符串标量或特征向量。的modelPackage
包包含:
的
_init_.py
文件,它定义了modelPackage
文件夹作为常规的Python包。的
model.py
文件,其中包含的代码定义了未经训练的TensorFlow-Keras模型。的
固定
文件,该文件提供说明如何加载TensorFlow模型并将其保存HDF5
或SavedModel
格式。更多细节,请参阅负载输出TensorFlow模型和在标准格式保存导出TensorFlow模型。的
weights.h5
文件,其中包含模型的权重HDF5
格式。的
customLayers
为每个导出自定义文件夹,其中包含一个文件层。每个文件都是一个不完整的定义TensorFlow定制层。您必须编辑或替换这些文件之前,您可以在Python中加载模型。该软件创建customLayers
文件夹只有当MATLAB网络或层图包含一个定义或内置MATLAB层exportNetworkToTensorFlow
不能转换为TensorFlow层。
例子:“myModel”
lgraph
- - - - - -深度学习工具箱层图
LayerGraph
对象|层
数组
深度学习工具箱层图,指定为一个LayerGraph
对象或层
数组中。
限制
加载一个出口TensorFlow模型,您必须:
TensorFlow r2.0或更高版本
Python版本3.0或更高版本
TensorFlow模块
组织
MATLAB网络或层图,其中包含一个或多个以下层:groupNormalizationLayer
instanceNormalizationLayer
layerNormalizationLayer
与OperationDimension
设置为“batch-excluded”
更多关于
层支持出口金宝appTensorFlow
的exportNetworkToTensorFlow
函数支持这些深度学金宝app习工具箱层为出口TensorFlow层。
深度学习工具箱层
卷积和完全连接层 convolution1dLayer
convolution2dLayer
convolution3dLayer
groupedConvolution2dLayer
fullyConnectedLayer
transposedConv2dLayer
transposedConv3dLayer
正常化,辍学,种植层 batchNormalizationLayer
crop2dLayer
crop3dLayer
crossChannelNormalizationLayer
dropoutLayer
groupNormalizationLayer
instanceNormalizationLayer
layerNormalizationLayer
图像处理工具箱™层
depthToSpace2dLayer
(图像处理工具箱)resize2dLayer
(图像处理工具箱)resize3dLayer
(图像处理工具箱)spaceToDepthLayer
(图像处理工具箱)激光雷达工具箱™层
pointCloudInputLayer
(激光雷达工具箱)
负载输出TensorFlow模型
本节描述如何加载TensorFlow模型在Python包modelPackage
,exportNetworkToTensorFlow
创建。例如,看到的出口网络TensorFlow。
加载出口TensorFlow模型权重。
进口modelPackage模型= modelPackage.load_model ()
负荷模型导出的TensorFlow没有重量。
进口modelPackage模型= modelPackage.load_model (load_weights = False)
保存导出TensorFlow模型在标准格式
可选地,您可以保存导出的TensorFlow模型SavedModel
或HDF5
格式。你必须首先加载出口TensorFlow模型遵循的指令负载输出TensorFlow模型。为例,展示了如何保存导出的模型SavedModel
格式,请参阅出口网络TensorFlow。
保存TensorFlow加载模型SavedModel
格式。
model.save (“modelName”)
保存TensorFlow加载模型HDF5
格式。
model.save (modelName save_format =“h5”)
提示
MATLAB使用集中的索引,而Python使用从零开始的索引。换句话说,在数组第一个元素的索引1和0在MATLAB和Python,分别。MATLAB索引的更多信息,请参阅数组索引。在MATLAB中,使用数组索引(
印第安纳州
)在Python中,创建数组转换为印第安纳州+ 1
。
版本历史
介绍了R2022b
MATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。金宝app
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。