findPlaceholderLayers
找到占位符层网络体系结构从Keras或进口ONNX
语法
描述
返回所有占位符层中存在的网络体系结构placeholderLayers
= findPlaceholderLayers (importedLayers
)importedLayers
进口的importKerasLayers
或importONNXLayers
功能。占位符层是这些功能插入的层的层所不支持的深度学习工具箱™。金宝app
使用导入网络,这个函数需要的深度学习工具箱转换器TensorFlow™模型金宝app支持包或深度学习工具箱转换器ONNX™模型格式金宝app支持包。
(
还返回占位符的指标层。placeholderLayers
,指数
)= findPlaceholderLayers (importedLayers
)
例子
发现和探索占位符层
从指定Keras网络文件导入层。
modelfile =“digitsDAGnetwithnoise.h5”;
导入网络体系结构。网络层包括一些类型不支持的深度学习工具。金宝app的importKerasLayers
函数替换每个不支持的一层一层和一个占位符,并返回一金宝app个警告消息。
lgraph = importKerasLayers (modelfile)
警告:无法导入一些Keras层,因为他们是不支持的深度学习工具。金宝app他们已经被占位符层。为了找到这些层,调用这个函数findPlaceholderLayers返回的对象。
lgraph = LayerGraph属性:InputNames: {“input_1”} OutputNames: {“ClassificationLayer_activation_1”}层:x1 nnet.cnn.layer.Layer[15]连接:[15 x2表)
显示导入的网络层。两个占位符层Keras取代高斯噪声层网络。
lgraph.Layers
ans x1 = 15层阵列层:1“input_1”28 x28x1图像输入图像2 conv2d_1的二维卷积20 7 x7旋转步[1]和填充“相同”3“conv2d_1_relu”ReLU ReLU 4“conv2d_2”二维卷积20 3 x3的隆起与步幅[1]和填充“相同”5“conv2d_2_relu”ReLU ReLU 6“gaussian_noise_1”占位符层占位符的GaussianNoise Keras一层一层7“gaussian_noise_2”占位符的占位符的GaussianNoise Keras层8“max_pooling2d_1”二维最大池2 x2马克斯池步(2 - 2)和填充“相同”9“max_pooling2d_2”二维最大池2 x2马克斯池步(2 - 2)和填充“相同”10 ' flatten_1 Keras平压平激活成一维假设c风格的(行)订单11的flatten_2 Keras平压平激活成一维假设c风格的(行)订单12的concatenate_1深度连接深度连接2输入13“dense_1”完全连接10完全连接层14的activation_1 Softmax Softmax 15 ClassificationLayer_activation_1 crossentropyex分类输出
发现使用占位符层findPlaceholderLayers
。输出参数包含两层占位符importKerasLayers
插入到位的高斯噪声层Keras网络。
占位符= findPlaceholderLayers (lgraph)
占位符= 2 x1 PlaceholderLayer阵列层:1“gaussian_noise_1”占位符层占位符的GaussianNoise Keras层2的gaussian_noise_2占位符一层一层的GaussianNoise Keras的占位符
指定一个名称为每个占位符层。
gaussian1 =占位符(1);gaussian2 =占位符(2);
显示每个占位符的配置层。
gaussian1.KerasConfiguration
ans =结构体字段:可训练的:1名称:“gaussian_noise_1”stddev: 1.5000
gaussian2.KerasConfiguration
ans =结构体字段:可训练的:1名称:“gaussian_noise_2”stddev: 0.7000
组装网络从Pretrained Keras层
这个例子展示了如何导入层从pretrained Keras网络取代不支持自定义层的层,和组装层准备网络预测。金宝app
进口Keras网络
导入从Keras层网络模型。网络在“digitsDAGnetwithnoise.h5”
分类的图像数字。
文件名=“digitsDAGnetwithnoise.h5”;lgraph = importKerasLayers(文件名,“ImportWeights”,真正的);
警告:无法导入一些Keras层,因为他们是不支持的深度学习工具。金宝app他们已经被占位符层。为了找到这些层,调用这个函数findPlaceholderLayers返回的对象。
Keras网络不支持包含一些层深度学习工具箱。金宝app的importKerasLayers
函数显示一个警告,取代了支持层,一层一层的占位符。金宝app
绘制层图使用情节
。
图绘制(lgraph)标题(“进口网络”)
替换占位符层
替换占位符层,首先识别层的名称来代替。发现使用占位符层findPlaceholderLayers
。
placeholderLayers = findPlaceholderLayers (lgraph)
placeholderLayers = 2 x1 PlaceholderLayer阵列层:1“gaussian_noise_1”占位符层占位符的GaussianNoise Keras层2的gaussian_noise_2占位符一层一层的GaussianNoise Keras的占位符
显示Keras配置这些层。
placeholderLayers.KerasConfiguration
ans =结构体字段:可训练的:1名称:“gaussian_noise_1”stddev: 1.5000
ans =结构体字段:可训练的:1名称:“gaussian_noise_2”stddev: 0.7000
创建两个高斯噪声层相同的配置进口Keras层使用助手gaussianNoiseLayer
函数。
gnLayer1 = gaussianNoiseLayer (1.5,“new_gaussian_noise_1”);gnLayer2 = gaussianNoiseLayer (0.7,“new_gaussian_noise_2”);
用自定义层使用替换占位符层replaceLayer
。
lgraph = replaceLayer (lgraph,“gaussian_noise_1”,gnLayer1);lgraph = replaceLayer (lgraph,“gaussian_noise_2”,gnLayer2);
情节更新层图使用情节
。
图绘制(lgraph)标题(“网络取代层”)
指定类名
如果导入的分类层不包含的类,那么您必须指定这些之前的预测。如果你不指定的类,然后软件自动设置类1
,2
、……N
,在那里N
类的数量。
找到的索引分类层通过查看层
层的属性图。
lgraph.Layers
ans x1 = 15层阵列层:1“input_1”28 x28x1图像输入图像2 conv2d_1的二维卷积20 7 x7x1旋转步[1]和填充“相同”3“conv2d_1_relu”ReLU ReLU 4“conv2d_2”二维卷积20 3 x3x1旋转步[1]和填充“相同”5“conv2d_2_relu”ReLU ReLU 6 new_gaussian_noise_1高斯噪声的高斯噪声标准差为1.5 7 new_gaussian_noise_2高斯噪声的高斯噪声标准差为0.7 8“max_pooling2d_1”二维最大池2 x2马克斯池步(2 - 2)和填充“相同”9“max_pooling2d_2”二维最大池2 x2马克斯池步(2 - 2)和填充“相同”10 ' flatten_1 Keras平压平激活成一维假设c风格的(行)订单11的flatten_2 Keras平压平激活成一维假设c风格的(行)订单12的concatenate_1深度连接深度连接2输入13“dense_1”完全连接10完全连接层14的activation_1 Softmax Softmax 15 ClassificationLayer_activation_1 crossentropyex分类输出
分类层的名字“ClassificationLayer_activation_1”
。查看分类层和检查类
财产。
粘土= lgraph.Layers(结束)
粘土= ClassificationOutputLayer属性:名称:“ClassificationLayer_activation_1”类:“汽车”ClassWeights:“没有一个”OutputSize:‘汽车’Hyperparameters LossFunction:“crossentropyex”
因为类
层的属性“汽车”
,您必须手动指定的类。设置类0
,1
、……9
,然后用新的代替进口分类层。
粘土。类=字符串(0:9)
粘土= ClassificationOutputLayer属性:名称:“ClassificationLayer_activation_1”类:[0 1 2 3 4 5 6 7 8 9]ClassWeights:“没有一个”OutputSize: 10 Hyperparameters LossFunction:“crossentropyex”
lgraph = replaceLayer (lgraph,“ClassificationLayer_activation_1”、粘土);
组装网络
组装层图使用assembleNetwork
。函数返回一个DAGNetwork
为预测对象,已经可以使用了。
净= assembleNetwork (lgraph)
网= DAGNetwork属性:层:x1 nnet.cnn.layer.Layer[15]连接:[15 x2表]InputNames: {“input_1”} OutputNames: {“ClassificationLayer_activation_1”}
输入参数
importedLayers
- - - - - -网络体系结构从Keras或ONNX进口
层
数组|LayerGraph
对象
网络体系结构从Keras进口或ONNX,指定为一个层
数组或LayerGraph
对象。
输出参数
placeholderLayers
——所有的占位符层网络体系结构
的数组PlaceholderLayer
对象
所有的占位符层网络体系结构,作为一个数组返回PlaceholderLayer
对象。
指数
——指数占位符层
向量
占位符的指标层,作为一个向量返回。
如果
importedLayers
是一层数组,然后呢指数
占位符的指标层吗importedLayers
。如果
importedLayers
是一个LayerGraph
对象,然后指数
占位符的指标层吗importedLayers.Layers
。
如果删除或添加一层一层层
数组或LayerGraph
对象,然后指数可以改变其他层的对象。你必须使用findPlaceholderLayers
再找到其余的占位符的更新指标层。
提示
如果你已经安装了深度学习工具箱转换器TensorFlow模型和
findPlaceholderLayers
是无法找到占位符层时创建ONNX网络是进口的,然后试着更新深度学习工具箱转换器TensorFlow模型金宝app在插件浏览器支持包。
版本历史
介绍了R2017b
MATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。金宝app
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。