replaceLayer
语法
描述
例子
取代层在层图
定义一个简单的网络体系结构和情节。
层= [imageInputLayer ([28 28 1],“名字”,“输入”)convolution2dLayer(3, 16岁,“填充”,“相同”)reluLayer (“名字”,“relu_1”)additionLayer (2“名字”,“添加”)fullyConnectedLayer (10) softmaxLayer classificationLayer];lgraph = layerGraph(层);lgraph = connectLayers (lgraph,“输入”,“添加/ in2”);图绘制(lgraph)
换上一批ReLU层网络中归一化层,后跟一个漏水的ReLU层。
层= [batchNormalizationLayer leakyReluLayer (0.1)];lgraph = replaceLayer (lgraph,“relu_1”层);情节(lgraph)
组装网络从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”}
输入参数
lgraph
- - - - - -层图
LayerGraph
对象
层图,指定为一个LayerGraph
对象。创建一个层图,使用layerGraph
。
净
- - - - - -神经网络
dlnetwork
对象
神经网络作为一个指定dlnetwork
对象。
layerName
- - - - - -层的名称来代替
字符串标量|特征向量
层的名称来代替,指定为字符串标量或一个特征向量。
larray
- - - - - -网络层
层
数组
网络层,指定为一个层
数组中。
一个内置的图层列表,看到深度学习层的列表。
模式
- - - - - -方法重新连接层
“名字”
(默认)|“秩序”
方法重新连接层指定为以下之一:
“名字”
——重新连接larray
使用输入和输出的名称替换层。取代的每一层都连接到一个输入层、连接层输入相同的输入名称larray (1)
。取代的每一层都连接到一个输出层、连接层的输出相同的输出的名称larray(结束)
。“秩序”
——重新连接larray
使用的顺序输入的名字larray (1)
和输出的名字larray(结束)
。重新连接层连接我
输入替换层我
th的输入larray (1)
。重新连接层连接j
取代层的输出j
th的输出larray(结束)
。
数据类型:字符
|字符串
输出参数
lgraphUpdated
——更新层图
LayerGraph
对象
更新层图,作为一个返回LayerGraph
对象。
版本历史
介绍了R2018b
Abrir比如
这种版本modificada德埃斯特比如。害怕Desea abrir埃斯特比如con sus modificaciones吗?
第一de MATLAB
Ha事实clic en联合国围绕此时一个埃斯特第一de MATLAB:
Ejecute el第一introduciendolo en la ventana de第一de MATLAB。洛杉矶navegadores网络没有admiten第一de MATLAB。
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。