importTensorFlowLayers
语法
描述
从文件夹中返回TensorFlow™网络的层lgraph
= importTensorFlowLayers (modelFolder
)modelFolder
该函数可以导入使用TensorFlow- keras顺序或功能API创建的TensorFlow网络。importTensorFlowLayers
中定义的层saved_model.pb
文件中包含的学习权值变量
子文件夹,并返回lgraph
作为一个LayerGraph
对象。
importTensorFlowLayers
要求深度学习工具箱™转换器的TensorFlow模型金宝app支持包。如果未安装此支持金宝app包,则importTensorFlowLayers
提供下载链接。
请注意
importTensorFlowLayers
当您导入自定义TensorFlow层或软件无法将TensorFlow层转换为等效的内置MATLAB时,尝试生成自定义层®层。有关软件支持转换的层列表,请参见金宝app支持转换为内置MATLAB层的TensorFlo金宝appw-Keras层。
importTensorFlowLayers
在包中保存生成的自定义层和相关的TensorFlow操作符+
。modelFolder
importTensorFlowLayers
不会自动为每个不支持转换为内置MATLAB层的TensorFlow层生成自定义层。金宝app有关如何处理不受支持的层的详细信息,请参见金宝app提示。
通过一个或多个名称-值参数指定的附加选项,从TensorFlow网络导入层和权重。例如,lgraph
= importTensorFlowLayers (modelFolder
,名称,值
)“OutputLayerType”、“分类”
将分类输出层附加到导入的网络体系结构的末尾。
例子
导入TensorFlow网络作为层图兼容DAGNetwork
以保存的模型格式导入预训练的TensorFlow网络LayerGraph
对象。然后,将导入的图层组装成DAGNetwork
对象,并使用组合网络对图像进行分类。
指定模型文件夹。
如果~ (“digitsDAGnet”,“dir”)解压缩(“digitsDAGnet.zip”)结束modelFolder =”。/ digitsDAGnet ';
指定类名。
classNames = {' 0 ',' 1 ',' 2 ',“3”,“4”,“5”,“6”,“7”,“8”,“9”};
以保存的模型格式导入TensorFlow网络的层和权值。默认情况下,importTensorFlowLayers
导入网络为LayerGraph
对象兼容DAGNetwork
对象。为图像分类问题指定输出层类型。
lgraph = importTensorFlowLayers(modelFolder,“OutputLayerType”,“分类”)
导入已保存的模型…翻译模型,这可能需要几分钟……完成翻译。
lgraph = LayerGraph with properties: Layers: [13×1 nnet.cnn.layer.Layer] Connections: [13×2 table] InputNames: {'input_1'} OutputNames: {'ClassificationLayer_activation_1'}
显示导入网络的最后一层。输出显示importTensorFlowLayers
附加一个ClassificationOutputLayer
到网络架构结束。
lgraph.Layers(结束)
ans = ClassificationOutputLayer with properties: Name: 'ClassificationLayer_activation_1' Classes: 'auto' ClassWeights: 'none' OutputSize: 'auto' Hyperparameters LossFunction: 'crossentropyex'
分类层不包含类,因此必须在组装网络之前指定这些类。如果不指定类,则软件会自动将类设置为1
,2
、……N
,在那里N
是类的数量。
分类层有一个名称“ClassificationLayer_activation_1”
。将类设置为一会
然后将导入的分类层替换为新的分类层。
cLayer = lgraph.Layers(end);粘土。Classes = classNames;lgraph = replaceLayer(lgraph;“ClassificationLayer_activation_1”、粘土);
组装层图使用assembleNetwork
返回aDAGNetwork
对象。
装配网络(lgraph)
net = DAGNetwork with properties: Layers: [13×1 nnet.cnn.layer.Layer] Connections: [13×2 table] InputNames: {'input_1'} OutputNames: {'ClassificationLayer_activation_1'}
阅读你想要分类的图像。
digitDatasetPath = fullfile(toolboxdir)“nnet”),“nndemos”,“nndatasets”,“DigitDataset”);I = imread(fullfile(digitDatasetPath),“5”,“image4009.png”));
使用导入的网络对图像进行分类。
label = classification (net,I);
显示图像和分类结果。
imshow (I)标题([“分类结果”一会{标签}])
导入TensorFlow网络作为层图兼容dlnetwork
以保存的模型格式导入预训练的TensorFlow网络LayerGraph
对象兼容dlnetwork
对象。然后,将LayerGraph
反对dlnetwork
对图像进行分类。
指定模型文件夹。
如果~ (“digitsDAGnet”,“dir”)解压缩(“digitsDAGnet.zip”)结束modelFolder =”。/ digitsDAGnet ';
指定类名。
classNames = {' 0 ',' 1 ',' 2 ',“3”,“4”,“5”,“6”,“7”,“8”,“9”};
导入TensorFlow网络作为与a兼容的层dlnetwork
对象。
lgraph = importTensorFlowLayers(modelFolder,“TargetNetwork”,“dlnetwork”)
导入已保存的模型…翻译模型,这可能需要几分钟……完成翻译。
lgraph = LayerGraph with properties: Layers: [12×1 nnet.cnn.layer.Layer] Connections: [12×2 table] InputNames: {'input_1'} OutputNames: {1×0 cell}
读取要分类的图像并显示图像的大小。该图像是灰度(单通道)图像,大小为28 × 28像素。
digitDatasetPath = fullfile(toolboxdir)“nnet”),“nndemos”,“nndatasets”,“DigitDataset”);I = imread(fullfile(digitDatasetPath),“5”,“image4009.png”));大小(我)
ans =1×228日28日
将导入的层图转换为adlnetwork
对象。
Dlnet = dlnetwork(lgraph);
显示网络的输入大小。在这种情况下,图像大小与网络输入大小匹配。如果它们不匹配,则必须使用imresize(我netInputSize (1:2))
。
dlnet.Layers (1) .InputSize
ans =1×328 28 1
将图像转换为adlarray
。用尺寸格式化图像“SSCB”
(空间、空间、通道、批量)。在本例中,批大小为1,您可以忽略它(SSC的
).
I_dlarray = dlarray(single(I),“SSCB”);
对样本图像进行分类,找到预测的标签。
prob = predict(dlnet, i_array);[~,label] = max(prob);
显示图像和分类结果。
imshow (I)标题([“分类结果”一会{标签}])
导入TensorFlow网络作为层图与自动生成的自定义层
以保存的模型格式导入预训练的TensorFlow网络LayerGraph
对象。然后,将导入的图层组装成DAGNetwork
对象。导入的网络包含不支持转换为内置MATLAB层的层。金宝app当您导入这些图层时,软件会自动生成自定义图层。
本例使用helper函数findCustomLayers
。要查看此函数的代码,请参见Helper函数。
指定模型文件夹。
如果~ (“digitsDAGnetwithnoise”,“dir”)解压缩(“digitsDAGnetwithnoise.zip”)结束modelFolder =”。/ digitsDAGnetwithnoise ';
指定类名。
classNames = {' 0 ',' 1 ',' 2 ',“3”,“4”,“5”,“6”,“7”,“8”,“9”};
以保存的模型格式导入TensorFlow网络的层和权值。默认情况下,importTensorFlowLayers
导入网络为LayerGraph
对象兼容DAGNetwork
对象。为图像分类问题指定输出层类型。
lgraph = importTensorFlowLayers(modelFolder,“OutputLayerType”,“分类”);
导入已保存的模型…翻译模型,这可能需要几分钟……完成翻译。
如果导入的网络包含不支持转换为内置MATLAB层的层,则金宝appimportTensorFlowLayers
可以自动生成自定义层的地方,这些层。importTensorFlowLayers
保存每个生成的自定义层到一个单独的。m
包中的文件+ digitsDAGnetwithnoise
在当前文件夹中。
使用helper函数查找自动生成的自定义层的索引findCustomLayers
,并显示自定义图层。
ind = findCustomLayers(lgraph。层,' + digitsDAGnetwithnoise ');lgraph.Layers(印第安纳州)
ans = 2×1层数组与层:1' gaussian_noise_1' GaussianNoise digitsDAGnetwithnoise。kgaussiannoise2layer3791 . kGaussianNoise1Layer3766 2' gaussian_noise_2' GaussianNoise digitsDAGnetwithnoise.kGaussianNoise2Layer3791
分类层不包含类,因此必须在组装网络之前指定这些类。如果不指定类,则软件会自动将类设置为1
,2
、……N
,在那里N
是类的数量。
分类层有一个名称“ClassificationLayer_activation_1”
。将类设置为一会
然后将导入的分类层替换为新的分类层。
cLayer = lgraph.Layers(end);粘土。Classes = classNames;lgraph = replaceLayer(lgraph;“ClassificationLayer_activation_1”、粘土);
组装层图使用assembleNetwork
。函数返回一个DAGNetwork
对象,该对象准备用于预测。
装配网络(lgraph)
net = DAGNetwork with properties: Layers: [15×1 nnet.cnn.layer.Layer] Connections: [15×2 table] InputNames: {'input_1'} OutputNames: {'ClassificationLayer_activation_1'}
Helper函数
本节提供helper函数的代码findCustomLayers
在本例中使用。findCustomLayers
返回指数
的自定义图层importTensorFlowNetwork
自动生成。
函数索引= findCustomLayers(layers,PackageName) s = what(‘。’PackageName]);index = 0 (1,length(s.m));为I = 1:长度(层)为J = 1:长度(s.m)如果strcmpi(类(层(i)), [PackageName(2:结束)“。”m{j}(1:end-2)]) index (j) = i;结束结束结束结束
输入参数
modelFolder
- - - - - -TensorFlow模型文件夹的名称
特征向量|字符串标量
包含TensorFlow模型的文件夹的名称,指定为字符向量或字符串标量。modelFolder
必须位于当前文件夹中,或者必须包含该文件夹的完整路径或相对路径。modelFolder
必须包含文件saved_model.pb
,以及子文件夹变量
。它还可以包含子文件夹资产
和assets.extra
。
该文件
saved_model.pb
包含层图架构和训练选项(例如,优化器、损失和度量)。的子文件夹
变量
包含预训练的TensorFlow网络学习到的权重。默认情况下,importTensorFlowLayers
导入权重。的子文件夹
资产
包含层图可以使用的补充文件(例如词汇表)。importTensorFlowLayers
不导入文件资产
。的子文件夹
assets.extra
包含与层图共存的补充文件(例如,用户信息)。
例子:“MobileNet”
例子:”。/ MobileNet '
名称-值参数
指定可选的参数对为Name1 = Value1,…,以=家
,在那里名字
是参数名和吗价值
是对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。
在R2021a之前,使用逗号分隔每个名称和值,并将其括起来名字
在报价。
例子:importTensorFlowLayers (modelFolder‘TargetNetwork’,‘dagnetwork’,‘OutputLayerType’,“分类”)
从中导入网络层和权重modelFolder
,将自动生成的自定义图层保存在包中+ modelFolder
在当前文件夹中,指定导入的图层与DAGNetwork
对象,并将分类输出层附加到导入层的末尾。
PackageName
- - - - - -自定义图层包的名称
特征向量|字符串标量
包的名称importTensorFlowLayers
保存自定义图层,指定为字符矢量或字符串标量。importTensorFlowLayers
保存自定义图层包+
在当前文件夹中。如果不指定PackageName
“PackageName”
,然后importTensorFlowLayers
将自定义图层保存在名为+
在当前文件夹中。有关包的更多信息,请参见包创建命名空间。modelFolder
importTensorFlowLayers
当您导入自定义TensorFlow层或软件无法将TensorFlow层转换为等效的内置MATLAB层时,尝试生成自定义层。importTensorFlowLayers
保存每个生成的自定义层到一个单独的。m
文件中+
。要查看或编辑自定义图层,请打开相关的PackageName
。m
文件。有关自定义层的更多信息,请参见自定义图层。
这个包+
还能包含子包吗PackageName
+行动
。此子包包含对应于TensorFlow算子的MATLAB函数(参见金宝app支持的TensorFlow操作符),用于自动生成的自定义图层。importTensorFlowLayers
将每个算子的相关MATLAB函数单独保存。m
文件中的子包+行动
。的对象函数dlnetwork
,例如预测
函数,在与自定义层交互时使用这些操作符。
例子:“PackageName”、“MobileNet”
例子:“PackageName”、“CustomLayers”
TargetNetwork
- - - - - -深度学习工具箱网络的目标类型
“dagnetwork”
(默认)|“dlnetwork”
导入网络架构的深度学习工具箱网络的目标类型,指定为“dagnetwork”
或“dlnetwork”
。
如果你指定
“TargetNetwork”
作为“dagnetwork”
时,导入的网络架构兼容DAGNetwork
对象。在本例中,是导入的lgraph
必须包括由TensorFlow保存的模型损失函数或名称值参数指定的输出层“OutputLayerType”
。如果你指定
“TargetNetwork”
作为“dlnetwork”
时,导入的网络架构兼容dlnetwork
对象。在本例中,是导入的lgraph
不包括输出层。
例子:“TargetNetwork”、“dlnetwork”
进口LayerGraph
对象兼容dlnetwork
对象。
OutputLayerType
- - - - - -输出层类型
“分类”
|“回归”
|“pixelclassification”
输出层的类型importTensorFlowLayers
追加到导入的网络架构的末尾,指定为“分类”
,“回归”
,或“pixelclassification”
。附加一个pixelClassificationLayer
(计算机视觉工具箱)对象需要计算机视觉工具箱™。
如果你指定
“TargetNetwork”
作为“dagnetwork”
保存的模型modelFolder
如果没有指定损失函数,则必须给name-value参数赋值“OutputLayerType”
。一个DAGNetwork
对象必须有一个输出层。如果你指定
“TargetNetwork”
作为“dlnetwork”
,importTensorFlowLayers
忽略名称-值参数“OutputLayerType”
。一个dlnetwork
对象没有输出层。
例子:“OutputLayerType”、“分类”
ImageInputSize
- - - - - -输入图像的大小
由两个或三个数值组成的向量
为网络输入图像的大小,指定为两个或三个数值对应的矢量(高度、宽度)
对于灰度图像和(高度、宽度、渠道)
分别用于彩色图像。网络使用此信息saved_model.pb
文件中modelFolder
不指定输入大小。
例子:“ImageInputSize”,[28 28]
详细的
- - - - - -用于显示导入进度信息
真正的
或1
(默认)|假
或0
指示符用于在命令窗口中显示导入进度信息,指定为数字或逻辑1
(真正的
)或0
(假
).
例子:“详细”,“真正的”
输出参数
lgraph
—网络架构
LayerGraph
对象
网络架构,返回为LayerGraph
对象。
要使用导入的层图进行预测,您必须转换LayerGraph
反对DAGNetwork
或dlnetwork
对象。指定名称-值参数“TargetNetwork”
作为“dagnetwork”
或“dlnetwork”
取决于预期的工作流程。
限制
importTensorFlowLayers
金宝app支持TensorFlow版本v2.0到2.6。
更多关于
TensorFlow-Keras层支持转换为内置金宝appMATLAB层
importTensorFlowLayers
金宝app支持以下TensorFlow-Keras层类型,用于转换为内置的MATLAB层,但有一些限制。
TensorFlow-Keras层 | 相应的深度学习工具箱层 |
---|---|
添加 |
additionLayer |
|
层: |
先进的激活:
|
层:
|
AveragePooling1D |
averagePooling1dLayer 与PaddingValue 指定为“的意思是” |
AveragePooling2D |
averagePooling2dLayer 与PaddingValue 指定为“的意思是” |
BatchNormalization |
batchNormalizationLayer |
双向(LSTM (__)) |
bilstmLayer |
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 |
groupedConvolution2dLayer 或convolution2dLayer |
TimeDistributed |
sequenceFoldingLayer 在包裹层之前,和sequenceUnfoldingLayer 在包裹层之后 |
UpSampling2D |
resize2dLayer (图像处理工具箱) |
UpSampling3D |
resize3dLayer (图像处理工具箱) |
ZeroPadding1D |
nnet.keras.layer.ZeroPadding1DLayer |
ZeroPadding2D |
nnet.keras.layer.ZeroPadding2DLayer |
*对于PReLU层,importTensorFlowLayers
用向量元素的平均值替换矢量值缩放参数。您可以在导入后将参数更改回矢量。使用示例请参见导入Keras PReLU层。
金宝app支持TensorFlow-Keras损失函数
importTensorFlowLayers
金宝app支持以下Keras损失函数:
mean_squared_error
categorical_crossentropy
sparse_categorical_crossentropy
binary_crossentropy
金宝app支持TensorFlow运营商
importTensorFlowLayers
金宝app支持以下TensorFlow运算符,用于转换为MATLAB函数dlarray
金宝app支持。
TensorFlow运营商 | 相应的MATLAB函数 |
---|---|
添加 |
tfAdd |
AddN |
tfAddN |
AddV2 |
tfAdd |
所有 |
tfAll |
断言 |
断言 |
AvgPool |
tfAvgPool |
BatchMatMulV2 |
tfBatchMatMulV2 |
BiasAdd |
tfBiasAdd |
BroadcastTo |
tfBroadcastTo |
投 |
tfCast |
ConcatV2 |
tfCat |
常量 |
无(转换为自定义层中的权重) |
Conv2D |
tfConv2D |
DepthToSpace |
depthToSpace (图像处理工具箱) |
DepthwiseConv2dNative |
tfDepthwiseConv2D |
平等的 |
== |
经验值 |
经验值 |
ExpandDims |
tfExpandDims |
填满 |
tfFill |
FusedBatchNormV3 |
tfBatchnorm |
GatherV2 |
tfGather |
更大的 |
gt > |
GreaterEqual |
通用电气 ,> = |
身份 |
无(转换为自定义层中的值赋值) |
IdentityN |
tfIdentityN |
L2Loss |
tfL2Loss |
LeakyRelu |
leakyrelu |
少 |
lt ,< |
日志 |
日志 |
MatMul |
tfMatMul |
MaxPool |
tfMaxPool |
最大 |
tfMaximum |
的意思是 |
tfMean |
最低 |
tfMinimum |
MirrorPad |
tfMirrorPad |
Mul |
tfMul |
负的 |
- ,- |
NonMaxSuppressionV5 |
tfNonMaxSuppressionV5 |
包 |
tfStack |
垫 |
tfPad |
PadV2 |
tfPad |
PartitionedCall |
无(转换为自定义层方法中的函数) |
战俘 |
权力 ,。^ |
刺激 |
tfProd |
RandomStandardNormal |
tfRandomStandardNormal |
范围 |
tfRange |
ReadVariableOp |
无(转换为自定义层中的值赋值) |
RealDiv |
tfDiv |
线性整流函数(Rectified Linear Unit) |
线性整流函数(Rectified Linear Unit) |
Relu6 |
线性整流函数(Rectified Linear Unit) 和最小值 |
重塑 |
tfReshape |
ResizeBilinear |
dlresize (图像处理工具箱) |
ResizeNearestNeighbor |
dlresize (图像处理工具箱) |
Rsqrt |
√6 |
选择 |
tfSelect |
形状 |
tfShape |
乙状结肠 |
乙状结肠 |
大小 |
tfSize |
片 |
tfSlice |
Softmax |
softmax |
SpaceToDepth |
spaceToDepth (图像处理工具箱) |
分裂 |
tfSplit |
广场 |
. ^ 2 |
√6 |
√6 |
SquaredDifference |
tfMul 或tfSub |
挤压 |
tfSqueeze |
StatefulPartitionedCall |
无(转换为自定义层方法中的函数) |
StopGradient |
tfStopGradient |
StridedSlice |
tfStridedSlice 或tfSqueeze |
子 |
tfSub |
总和 |
tfSum |
双曲正切 |
双曲正切 |
瓷砖 |
tfTile |
转置 |
tfTranspose |
解压缩 |
tfUnpack |
在哪里 |
tfWhere |
操作的函数的更多信息dlarray
对象,看到支持数组的函数列表金宝app。
为导入的网络架构生成代码
你可以用MATLAB编码器™或GPU Coder™与深度学习工具箱一起生成MEX,独立CPU, CUDA®或用于导入网络的独立CUDA代码。有关更多信息,请参见代码生成。
使用MATLAB编码器使用深度学习工具箱生成在桌面或嵌入式目标上运行的MEX或独立CPU代码。您可以部署使用Intel®MKL-DNN库或ARM®计算库。或者,您可以生成不调用第三方库函数的通用C或c++代码。有关更多信息,请参见深度学习与MATLAB编码器(MATLAB编码器)。
使用GPU编码器与深度学习工具箱生成CUDA MEX或独立CUDA代码,运行在桌面或嵌入式目标。您可以部署使用CUDA深度神经网络库(cuDNN)、TensorRT™高性能推理库或Mali GPU的ARM计算库生成的独立CUDA代码。有关更多信息,请参见深度学习与GPU编码器(GPU编码器)。
importTensorFlowLayers
返回网络架构lgraph
作为一个LayerGraph
对象。对于代码生成,您必须首先转换导入的代码LayerGraph
对象到网络。把一个LayerGraph
反对DAGNetwork
或dlnetwork
对象assembleNetwork
或dlnetwork
。欲知更多有关MATLAB编码器和GPU Coder对深度学金宝app习工具箱对象的支持,参见金宝app支持类(MATLAB编码器)和金宝app支持类(GPU编码器),分别。
您可以为任何导入的网络生成代码,其层支持代码生成。金宝app来获取支持代码生成的层列表金宝appMATLAB编码器和GPU编码器,见金宝app支持层(MATLAB编码器)和金宝app支持层(GPU编码器),分别。有关每个内置MATLAB层的代码生成功能和限制的更多信息,请参阅该层的扩展功能部分。例如,参见代码生成和GPU代码生成的imageInputLayer
。
在GPU上使用导入网络层
importTensorFlowLayers
不会在GPU上执行。然而,importTensorFlowLayers
导入用于深度学习的预训练神经网络的层LayerGraph
对象,可以在GPU上使用。
转换导入的
LayerGraph
反对DAGNetwork
对象assembleNetwork
。在DAGNetwork
对象,然后你可以预测类标签上的CPU或GPU使用分类
。使用名称-值参数指定硬件需求ExecutionEnvironment
。对于具有多个输出的网络,使用预测
函数并指定名称-值参数ReturnCategorical
作为真正的
。转换导入的
LayerGraph
反对dlnetwork
对象dlnetwork
。在dlnetwork
对象,然后你可以预测类标签上的CPU或GPU使用预测
。这个函数预测
如果输入的数据或网络参数存储在GPU上,则在GPU上执行。如果你使用
minibatchqueue
为了处理和管理小批量的输入数据minibatchqueue
如果有图形处理器,object默认将输出转换为图形处理器阵列。使用
dlupdate
转换a的可学习参数dlnetwork
对象到GPU阵列。net = dlupdate(@gpuArray,net)
你可以培训进口的
LayerGraph
对象在CPU或GPU上使用trainNetwork
。要指定培训选项,包括执行环境的选项,请使用trainingOptions
函数。使用名称-值参数指定硬件需求ExecutionEnvironment
。有关如何加速训练的更多信息,请参见在gpu和云端上并行扩展深度学习。
使用GPU需要Parallel Computing Toolbox™许可证和支持的GPU设备。金宝app有关支持的设备的信息,请参见金宝appGPU计算要求(并行计算工具箱)。
提示
如果导入的网络包含不支持转换为内置MATLAB层的层(参见金宝app支持转换为内置MATLAB层的TensorFlo金宝appw-Keras层),
importTensorFlowLayers
不会自动生成自定义层,那么importTensorFlowLayers
在不支持的图层上插入一个占位符图层。金宝app要查找网络中不支持的层的名称和索引,请使用金宝appfindPlaceholderLayers
函数。然后,您可以用您定义的新层替换占位符层。要替换一个图层,使用replaceLayer
。要使用预训练网络对新图像进行预测或迁移学习,您必须以与用于训练导入模型的图像预处理相同的方式对图像进行预处理。最常见的预处理步骤是调整图像大小、减去图像平均值以及将图像从BGR格式转换为RGB格式。
有关用于训练和预测的图像预处理的更多信息,请参见深度学习的图像预处理。
包的成员
+
如果包父文件夹不在MATLAB路径上,则无法访问(自定义层和TensorFlow操作符)。有关更多信息,请参见软件包和MATLAB路径。PackageName
MATLAB使用基于1的索引,而Python®使用从零开始的索引。换句话说,在MATLAB和Python中,数组中的第一个元素的索引分别为1和0。有关MATLAB索引的更多信息,请参见数组索引。在MATLAB中,使用索引数组(
印第安纳州
),将数组转换为印第安纳州+ 1
。有关更多提示,请参阅从TensorFlow, PyTorch和ONNX导入模型的技巧。
选择功能
使用importTensorFlowNetwork
或importTensorFlowLayers
以保存的模型格式导入TensorFlow网络[2]。或者,如果网络是HDF5或JSON格式,则使用importKerasNetwork
或importKerasLayers
导入网络。
参考文献
[1]TensorFlow。https://www.tensorflow.org/。
[2]使用SavedModel格式。https://www.tensorflow.org/guide/saved_model。
版本历史
在R2021a中引入R2023a:importTensorFlowLayers
创建用于连接的自定义层
的importTensorFlowLayers
函数返回tensorflow - keras自动生成的自定义层连接
层,而不是内置的深度学习工具箱层concatenationLayer
或depthConcatenationLayer
。以前用过的函数concatenationLayer
或depthConcatenationLayer
并根据所导入网络的输入层假设一个连接轴值。然而,对于一些复杂的网络,这种假设可能不成立。因此,该软件使用自动生成的自定义层来执行连接。自动生成的自定义层确保TensorFlow-Keras的正确翻译连接
层在运行时导入MATLAB。
Abrir比如
Tiene una versión modificada de este ejemploo。是否对所有的修改进行了修改?
MATLAB编程
在MATLAB中,该函数对应于一个最基本的函数:
在MATLAB中,用MATLAB编写了仿真程序。Los navegadores web no admit commandos de MATLAB。
你亦可选择下列网址:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家网站没有针对您所在位置的访问进行优化。