进口pretrainedTensorFlow网络
进口pretrained TensorFlow™网络文件夹净
= importTensorFlowNetwork (modelFolder
)modelFolder
保存模型中的模型,其中包含格式(兼容只有TensorFlow 2)。该函数可以导入TensorFlow网络创建TensorFlow-Keras顺序或功能的API。importTensorFlowNetwork
进口中定义的层saved_model.pb
中包含的文件和学习权重变量
子文件夹,并返回网络净
作为一个DAGNetwork
或dlnetwork
对象。
importTensorFlowNetwork
要求深度学习工具箱™转换器TensorFlow模型金宝app支持包。如果这种支持包没金宝app有安装importTensorFlowNetwork
提供一个下载链接。
请注意
importTensorFlowNetwork
试图生成一个自定义层当你导入一个定制TensorFlow层或当软件不能TensorFlow层转化为一个等价的内置MATLAB®层。的层的软件支持转换,明白了金宝appTensorFlow-Keras层支持转换成内置金宝appMATLAB层。
importTensorFlowNetwork
保存生成的自定义层和相关TensorFlow运营商在包+
。modelFolder
importTensorFlowNetwork
并不会自动生成一个自定义层每个TensorFlow层不支持转换成一个内置的MATLAB层。金宝app如何处理不支持层的更多信息,见金宝app提示。
导入pretrained TensorFlow网络附加选项指定一个或多个名称参数。例如,净
= importTensorFlowNetwork (modelFolder
,名称,值
)“OutputLayerType”、“分类”
网络作为一个进口DAGNetwork
与一个分类输出层附加到结束的进口网络体系结构。
DAGNetwork
对图像进行分类导入一个pretrained TensorFlow网络在保存的模型格式DAGNetwork
对象,并使用进口网络分类图像。
指定模型文件夹。
如果~ (“digitsDAGnet”,“dir”)解压缩(“digitsDAGnet.zip”)结束modelFolder =”。/ digitsDAGnet ';
指定类名。
一会= {' 0 ',' 1 ',' 2 ',“3”,“4”,“5”,“6”,“7”,“8”,“9”};
在保存的模型格式导入TensorFlow网络。默认情况下,importTensorFlowNetwork
网络作为一个进口DAGNetwork
对象。指定输出层类型的图像分类问题。
网= importTensorFlowNetwork (modelFolder,“OutputLayerType”,“分类”,“类”类名)
导入保存模型……翻译的模式,这可能需要几分钟…完成翻译。装配网络……导入完成。
网= DAGNetwork属性:层:[13×1 nnet.cnn.layer.Layer]连接:[13×2表]InputNames: {“input_1”} OutputNames: {“ClassificationLayer_activation_1”}
绘制网络体系结构。
情节(净)标题(“DAG网络体系结构”)
读你想要的图像分类和显示图像的大小。图像是灰度图像(一个频道)28-by-28像素大小。
digitDatasetPath = fullfile (toolboxdir (“nnet”),“nndemos”,“nndatasets”,“DigitDataset”);我= imread (fullfile (digitDatasetPath,“5”,“image4009.png”));大小(我)
ans =1×228日28日
显示输入网络的大小。在这种情况下,图像大小匹配网络输入的大小。如果它们不匹配,您必须调整图像通过使用imresize(我netInputSize (1:2))
。
net.Layers (1) .InputSize
ans =1×328日28日1
使用pretrained网络分类的图像。
标签=分类(净,我);
显示图像的分类结果。
imshow (I)标题([的分类结果char(标签)))
dlnetwork
对图像进行分类导入一个pretrained TensorFlow网络在保存的模型格式dlnetwork
对象,并使用进口网络预测类标签。
指定模型文件夹。
如果~ (“digitsDAGnet”,“dir”)解压缩(“digitsDAGnet.zip”)结束modelFolder =”。/ digitsDAGnet ';
指定类名。
一会= {' 0 ',' 1 ',' 2 ',“3”,“4”,“5”,“6”,“7”,“8”,“9”};
导入一个TensorFlow网络在保存的模型格式dlnetwork
对象。
网= importTensorFlowNetwork (modelFolder,“TargetNetwork”,“dlnetwork”)
导入保存模型……翻译的模式,这可能需要几分钟…完成翻译。装配网络……导入完成。
网= dlnetwork属性:层:[12×1 nnet.cnn.layer.Layer]连接:[12×2表]可学的:[6×3表]状态:[0×3表]InputNames: {“input_1”} OutputNames: {“activation_1”}初始化:1
读你想要的图像分类和显示图像的大小。图像是灰度图像(一个频道)28-by-28像素大小。
digitDatasetPath = fullfile (toolboxdir (“nnet”),“nndemos”,“nndatasets”,“DigitDataset”);我= imread (fullfile (digitDatasetPath,“5”,“image4009.png”));大小(我)
ans =1×228日28日
显示输入网络的大小。在这种情况下,图像大小匹配网络输入的大小。如果它们不匹配,您必须调整图像通过使用imresize(我netInputSize (1:2))
。
.InputSize netInputSize = net.Layers (1)
netInputSize =1×328日28日1
将图像转换为一个dlarray
。格式的图像尺寸“SSCB”
(空间、空间、通道、批)。在这种情况下,批量大小是1,你可以忽略它(SSC的
)。
I_dlarray = dlarray(单(我),“SSCB”);
样本图像进行分类,找到预测的标签。
概率=预测(净,I_dlarray);[~,标签]= max(概率);
显示图像的分类结果。
imshow (I)标题([的分类结果一会{标签}])
导入一个pretrained TensorFlow网络在保存的模型格式DAGNetwork
对象,并使用进口网络分类图像。导入的网络不支持包含层转换成内置MATLAB层。金宝app软件自动生成自定义层当你进口这些层。
下面的例子使用了辅助函数findCustomLayers
。查看这个函数的代码,看看Helper函数。
指定模型文件夹。
如果~ (“digitsDAGnetwithnoise”,“dir”)解压缩(“digitsDAGnetwithnoise.zip”)结束modelFolder =”。/ digitsDAGnetwithnoise ';
指定类名。
一会= {' 0 ',' 1 ',' 2 ',“3”,“4”,“5”,“6”,“7”,“8”,“9”};
在保存的模型格式导入TensorFlow网络。默认情况下,importTensorFlowNetwork
网络作为一个进口DAGNetwork
对象。指定输出层类型的图像分类问题。
网= importTensorFlowNetwork (modelFolder,“OutputLayerType”,“分类”,“类”类名);
导入保存模型……翻译的模式,这可能需要几分钟…完成翻译。装配网络……导入完成。
如果导入网络包含转换成的层不支持内置MATLAB层,金宝appimportTensorFlowNetwork
可以自动生成自定义层代替这些层。importTensorFlowNetwork
保存每个生成自定义一个单独的层。m
文件包+ digitsDAGnetwithnoise
在当前文件夹。
找到自动生成自定义的指标层使用helper函数findCustomLayers
,并显示自定义层。
印第安纳州= findCustomLayers (net.Layers,' + digitsDAGnetwithnoise ');net.Layers(印第安纳州)
ans = 2×1层阵列层:1‘gaussian_noise_1 GaussianNoise digitsDAGnetwithnoise。kGaussianNoise1Layer3766 2的gaussian_noise_2 GaussianNoise digitsDAGnetwithnoise.kGaussianNoise2Layer3791
绘制网络体系结构。
情节(净)标题(“DAG网络体系结构”)
读你想要的图像分类。
digitDatasetPath = fullfile (toolboxdir (“nnet”),“nndemos”,“nndatasets”,“DigitDataset”);我= imread (fullfile (digitDatasetPath,“5”,“image4009.png”));
使用pretrained网络分类的图像。
标签=分类(净,我);
显示图像的分类结果。
imshow (I)标题([的分类结果char(标签)))
Helper函数
本节提供的代码辅助功能findCustomLayers
在这个例子中使用。findCustomLayers
返回指数
自定义层importTensorFlowNetwork
自动生成。
函数指数= findCustomLayers(层,PackageName) s = ([‘。’PackageName]);指数= 0(1、长度(小);为i = 1:长度(层)为j = 1:长度(小)如果strcmpi(类(层(i)), [PackageName(2:结束)“。”s.m {j} (1: end-2)])指数(j) =我;结束结束结束结束
modelFolder
- - - - - -TensorFlow模型文件夹的名称文件夹的名称包含TensorFlow模型,指定为一个特征向量或字符串标量。modelFolder
必须在当前文件夹,或者你必须包括完整或相对路径的文件夹。modelFolder
必须包含的文件saved_model.pb
和子文件夹变量
。它还可以包含子文件夹资产
和assets.extra
。
该文件saved_model.pb
包含层图架构和培训选项(例如,优化器、损失和度量)。
的子文件夹变量
包含的权重学习pretrained TensorFlow网络。默认情况下,importTensorFlowNetwork
进口的权重。
的子文件夹资产
包含补充文件(例如,词汇表),这层图可以使用。importTensorFlowNetwork
没有导入文件吗资产
。
的子文件夹assets.extra
包含补充文件(例如,信息用户),这与层图共存。
例子:“MobileNet”
例子:”。/ MobileNet '
指定可选的逗号分隔条名称,值
参数。的名字
参数名称和吗价值
相应的价值。的名字
必须出现在引号。您可以指定几个名称和值对参数在任何顺序Name1, Value1,…,的家
。
importTensorFlowNetwork (modelFolder‘TargetNetwork’,‘dagnetwork’,‘OutputLayerType’,“分类”)
进口的网络modelFolder
作为一个DAGNetwork
对象,保存自动生成自定义层的包+ modelFolder
在当前文件夹,并附加一个分类输出层的进口网络体系结构。
PackageName
- - - - - -定义层包的名称的包的名称importTensorFlowNetwork
保存自定义图层,指定为一个特征向量或字符串标量。importTensorFlowNetwork
保存自定义层包+
在当前文件夹。如果你不指定PackageName
“PackageName”
,然后importTensorFlowNetwork
保存自定义层包命名+
在当前文件夹。关于包的更多信息,请参阅包创建名称空间。modelFolder
importTensorFlowNetwork
试图生成一个自定义层当你导入一个定制TensorFlow层或当软件不能TensorFlow层转化为一个等价的内置MATLAB层。importTensorFlowNetwork
保存每个生成自定义一个单独的层。m
文件中+
。查看或编辑自定义图层,打开相关PackageName
。m
文件。自定义层的更多信息,见深度学习自定义层。
这个包+
也可以包含分包PackageName
+行动
。这个分包包含MATLAB函数对应TensorFlow运营商(见金宝app支持TensorFlow运营商),用于自动生成自定义层。importTensorFlowNetwork
保存相关的每个操作符在一个单独的MATLAB函数。m
文件分装+行动
。对象的功能dlnetwork
,如预测
函数,使用这些操作符与自定义交互层。
例子:“PackageName”、“MobileNet”
例子:“PackageName”、“CustomLayers”
TargetNetwork
- - - - - -深度学习工具箱网络的目标类型“dagnetwork”
(默认)|“dlnetwork”
深度学习工具箱网络的目标类型,指定为“dagnetwork”
或“dlnetwork”
。
指定“TargetNetwork
作为“dagnetwork”
导入网络DAGNetwork
对象。在这种情况下,净
必须包括一个输出层TensorFlow保存模型损失函数或指定的名称论点吗“OutputLayerType”
。
指定“TargetNetwork
作为“dlnetwork”
导入网络dlnetwork
对象。在这种情况下,净
不包括一个输出层。
例子:“TargetNetwork”、“dlnetwork”
OutputLayerType
- - - - - -类型的输出层“分类”
|“回归”
|“pixelclassification”
类型的输出层importTensorFlowNetwork
附加的导入的网络体系结构,指定为“分类”
,“回归”
,或“pixelclassification”
。附加一个pixelClassificationLayer
(计算机视觉工具箱)计算机视觉对象需要工具箱™。
如果您指定“TargetNetwork”
作为“dagnetwork”
和保存的模型modelFolder
不指定一个损失函数,您必须指定一个名称参数值“OutputLayerType”
。一个DAGNetwork
对象必须有一个输出层。
如果您指定“TargetNetwork”
作为“dlnetwork”
,importTensorFlowNetwork
忽略了名称-值参数“OutputLayerType”
。一个dlnetwork
对象没有一个输出层。
例子:“OutputLayerType”、“分类”
ImageInputSize
- - - - - -输入图像的大小网络的输入图像的大小,指定为一个向量的两个或三个数值对应(高度、宽度)
对灰度图像和(高度、宽度、渠道)
分别对彩色图像。网络时使用该信息saved_model.pb
文件中modelFolder
没有指定输入的大小。
例子:“ImageInputSize”, [28 28]
类
- - - - - -输出层的类输出层的类,指定为一个分类向量,字符串数组,单元阵列的特征向量,或“汽车”
。如果您指定一个字符串数组或单元阵列的特征向量str
,然后importTensorFlowNetwork
设置输出层的类分类(str, str)
。如果类
是“汽车”
,然后importTensorFlowNetwork
设置类分类(1:N)
,在那里N
类的数量。
如果您指定“TargetNetwork”
作为“dagnetwork”
,importTensorFlowNetwork
类的信息存储在输出层DAGNetwork
对象。
如果您指定“TargetNetwork”
作为“dlnetwork”
,importTensorFlowNetwork
忽略了名称-值参数“类”
。一个dlnetwork
对象没有一个输出层存储类的信息。
例子:“类”,{' 0 ',' 1 ',' 3 '}
例子:“类”,直言({‘狗’,‘猫’})
数据类型:字符
|分类
|字符串
|细胞
详细的
- - - - - -指标显示导入进度信息真正的
或1
(默认)|假
或0
指示器显示导入进度信息在命令窗口中,指定为一个数字或逻辑1
(真正的
)或0
(假
)。
例子:“详细”,“真正的”
净
——Pretrained TensorFlow网络DAGNetwork
对象|dlnetwork
对象importTensorFlowNetwork
金宝app支持TensorFlow版本v2.0, v2.1, v.2.2 v2.3。
importTensorFlowNetwork
金宝app支持以下TensorFlow-Keras层类型转换成内置MATLAB层,有一些局限性。
TensorFlow-Keras层 | 相应的深度学习工具箱层 |
---|---|
添加 |
additionLayer |
|
层: |
先进的激活:
|
层:
|
AveragePooling1D |
averagePooling1dLayer 与PaddingValue 指定为“的意思是” |
AveragePooling2D |
averagePooling2dLayer 与PaddingValue 指定为“的意思是” |
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 |
groupedConvolution2dLayer 或convolution2dLayer |
TimeDistributed |
sequenceFoldingLayer 之前的包裹层,sequenceUnfoldingLayer 后包层 |
UpSampling2D |
resize2dLayer (图像处理工具箱) |
UpSampling3D |
resize3dLayer (图像处理工具箱) |
ZeroPadding1D |
nnet.keras.layer.ZeroPadding1DLayer |
ZeroPadding2D |
nnet.keras.layer.ZeroPadding2DLayer |
* PReLU层,importTensorFlowNetwork
取代了向量值尺度参数的平均向量的元素。你可以改变参数导入后回到一个向量。例如,看到的进口Keras PReLU层。
importTensorFlowNetwork
金宝app支持以下Keras损失函数:
mean_squared_error
categorical_crossentropy
sparse_categorical_crossentropy
binary_crossentropy
importTensorFlowNetwork
金宝app支持以下TensorFlow运营商转变为MATLAB函数dlarray
金宝app支持。
TensorFlow运营商 | 相应的MATLAB函数 |
---|---|
添加 |
tfAdd |
AddN |
tfAddN |
AddV2 |
tfAdd |
AvgPool |
tfAvgPool |
BatchMatMulV2 |
tfBatchMatMulV2 |
BiasAdd |
tfBiasAdd |
BroadcastTo |
tfBroadcastTo |
投 |
tfCast |
ConcatV2 |
tfCat |
常量 |
(翻译没有重量在自定义层) |
Conv2D |
tfConv2D |
DepthToSpace |
depthToSpace (图像处理工具箱) |
DepthwiseConv2dNative |
tfDepthwiseConv2D |
经验值 |
经验值 |
FusedBatchNormV3 |
tfBatchnorm |
GatherV2 |
tfGather |
身份 |
(没有一个翻译在自定义层)赋值 |
IdentityN |
tfIdentityN |
L2Loss |
tfL2Loss |
LeakyRelu |
leakyrelu |
少 |
lt ,< |
日志 |
日志 |
MatMul |
tfMatMul |
MaxPool |
tfMaxPool |
最大 |
tfMaximum |
的意思是 |
tfMean |
最低 |
tfMinimum |
MirrorPad |
tfMirrorPad |
Mul |
tfMul |
负的 |
- ,- - - - - - |
包 |
tfStack |
垫 |
tfPad |
PadV2 |
tfPad |
PartitionedCall |
(没有翻译功能自定义层方法) |
战俘 |
权力 ,。^ |
刺激 |
tfProd |
RandomStandardNormal |
tfRandomStandardNormal |
范围 |
tfRange |
ReadVariableOp |
(没有一个翻译在自定义层)赋值 |
RealDiv |
tfDiv |
线性整流函数(Rectified Linear Unit) |
线性整流函数(Rectified Linear Unit) |
Relu6 |
线性整流函数(Rectified Linear Unit) 和最小值 |
重塑 |
tfReshape |
ResizeNearestNeighbor |
dlresize (图像处理工具箱) |
Rsqrt |
√6 |
形状 |
tfShape |
乙状结肠 |
乙状结肠 |
Softmax |
softmax |
SpaceToDepth |
spaceToDepth (图像处理工具箱) |
广场 |
. ^ 2 |
√6 |
√6 |
SquaredDifference |
tfMul 或tfSub |
挤压 |
tfSqueeze |
StatefulPartitionedCall |
(没有翻译功能自定义层方法) |
StopGradient |
tfStopGradient |
StridedSlice |
tfStridedSlice 或tfSqueeze |
子 |
tfSub |
双曲正切 |
双曲正切 |
瓷砖 |
tfTile |
转置 |
交换 |
有关函数操作的更多信息dlarray
对象,看到与dlarray支持函数的列表金宝app。
importTensorFlowNetwork
不执行GPU。然而,importTensorFlowNetwork
进口pretrained深度学习的神经网络DAGNetwork
或dlnetwork
对象,您可以使用GPU。
如果你导入网络DAGNetwork
对象,您可以做出预测与进口网络使用一个CPU或GPU分类
。使用名称-值参数指定的硬件需求ExecutionEnvironment
。对于多个输出的网络,使用预测
函数DAGNetwork
对象。
如果你导入网络DAGNetwork
对象,您可以做出预测与进口网络使用一个CPU或GPU预测
。使用名称-值参数指定的硬件需求ExecutionEnvironment
。如果网络有多个输出,指定名称的论点ReturnCategorical
作为真正的
。
如果你导入网络dlnetwork
对象,您可以做出预测与进口网络使用一个CPU或GPU预测
。这个函数预测
在GPU上执行如果输入数据或网络参数存储在GPU上。
如果你使用minibatchqueue
输入数据的处理和管理mini-batches,minibatchqueue
对象将输出转换为GPU数组默认情况下如果GPU可用。
使用dlupdate
转换的可学的参数dlnetwork
GPU数组对象。
dlnet = dlupdate (@gpuarray dlnet)
你可以训练进口网络使用一个CPU或GPUtrainNetwork
。指定训练选项,包括选项执行环境,使用trainingOptions
函数。使用名称-值参数指定的硬件需求ExecutionEnvironment
。如何加快培训更多的信息,请参阅并行扩展深度学习,在gpu上,在云端。
使用GPU需要并行计算工具箱™和支持GPU设备。金宝app支持设备的信息,请参阅金宝appGPU的金宝app支持版本(并行计算工具箱)。
如果进口网络包含一层不支持转换成一个内置的MATLAB层(见金宝appTensorFlow-Keras层支持转换成内置金宝appMATLAB层),importTensorFlowNetwork
不生成一个自定义层呢importTensorFlowNetwork
返回一个错误。在这种情况下,您仍然可以使用importTensorFlowLayers
导入网络体系结构。
使用pretrained网络预测或转让学习新的图片,你必须进行预处理图像以同样的方式用于火车导入模型的图像预处理。最常见的预处理步骤调整图片大小,图像减去平均值,并从BGR图像RGB图像转换。
更多信息预处理图像进行训练和预测,明白了预处理图像深度学习。
包的成员+
(自定义层和TensorFlow运营商)是无法访问如果包父文件夹不是在MATLAB的道路。有关更多信息,请参见包和MATLAB的道路。PackageName
使用importTensorFlowNetwork
或importTensorFlowLayers
进口TensorFlow网络保存模型格式[2]。另外,如果网络HDF5或JSON格式,使用importKerasNetwork
或importKerasLayers
导入网络。
[1]TensorFlow。https://www.tensorflow.org/。
[2]使用SavedModel格式。https://www.tensorflow.org/guide/saved_model。
importKerasLayers
|importKerasNetwork
|importONNXNetwork
|importONNXLayers
|exportONNXNetwork
|importCaffeLayers
|importCaffeNetwork
|importONNXFunction
|importTensorFlowLayers
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。金宝app
你也可以从下面的列表中选择一个网站:
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。