主要内容

replaceLayer

層グラフまたはネットワ,クの層の置き換え

説明

lgraphUpdated= replaceLayer (lgraphlayerNamelarrayは,層グラフlgraphの層layerNamelarrayの層に置き換えます。

replaceLayerは,larrayの層を順に結合し,larrayを層グラフに結合します。

netUpdated= replaceLayer (layerNamelarrayは,dlnetworkオブジェクトの層layerNamelarrayの層に置き換えます。

replaceLayerは,larrayの層を順に結合し,larrayをネットワ,クに結合します。

___= replaceLayer (___“ReconnectBy”,模式は,さらに,層を再結合する方法を指定します。

すべて折りたたむ

シンプルなネットワ,クア,キテクチャを定義してプロットします。

图层= [imageInputLayer([28 28 1],“名字”“输入”) convolution2dLayer(3, 16岁,“填充”“相同”“名字”“conv_1”) reluLayer (“名字”“relu_1”) additionLayer (2“名字”“添加”) fullyConnectedLayer (10“名字”“俱乐部”) softmaxLayer (“名字”“softmax”) classificationLayer (“名字”“classoutput”));lgraph = layerGraph(图层);lgraph = connectLayers(“输入”“添加/ in2”);图绘制(lgraph)

图中包含一个轴对象。axis对象包含一个graphplot类型的对象。

ネットワークのReLU層を,バッチ正規化層およびそれに続く漏ReLU層に置き換えます。

larray = [batchNormalizationLayer(“名字”“BN1”) leakyReluLayer (“名字”“leakyRelu_1”“规模”0.1)];lgraph =替换层(lgraph,“relu_1”, larray);情节(lgraph)

图中包含一个轴对象。axis对象包含一个graphplot类型的对象。

この例では,事前学習済みのKerasネットワークから層をインポートし,サポートされていない層をカスタム層に置き換え,予測の準備が整ったネットワークをこれらの層から組み立てる方法を説明します。

Kerasネットワ、クの、ンポ、ト

Kerasネットワ、クモデルから層を、ンポ、トします。“digitsDAGnetwithnoise.h5”のネットワクは数字のメジを分類します。

文件名=“digitsDAGnetwithnoise.h5”;lgraph = importKerasLayers(文件名,“ImportWeights”,真正的);
警告:无法导入一些Keras层,因为深度学习工具箱不支持它们。万博1manbetx它们已被占位符层所取代。为了找到这些层,在返回的对象上调用findPlaceholderLayers函数。

Kerasネットワークには,深度学习工具箱ではサポートされていない層がいくつか含まれています。関数importKerasLayersは警告を表示して,サポ,トされていない層をプレ,スホルダ,層に置き換えます。

情节を使用して層グラフをプロットします。

图表(lgraph)标题(“进口网络”

图中包含一个轴对象。标题为Imported Network的axes对象包含一个graphplot类型的对象。

プレ,スホルダ,層の置き換え

プレ,スホルダ,層を置き換えるには,まず,置き換える層の名前を特定します。findPlaceholderLayersを使用してプレスホルダ層を見けます。

placeholderLayers = findPlaceholderLayers(lgraph)
1' gaussian_noise_1' PLACEHOLDER LAYER 'GaussianNoise' Keras LAYER 2' gaussian_noise_2' PLACEHOLDER LAYER 'GaussianNoise' Keras层的占位符

これらの層のKeras構成を表示します。

placeholderLayers。KerasConfiguration
ans =带字段的结构:可训练:1名:'gaussian_noise_1' stddev: 1.5000
ans =带字段的结构:可训练:1名:'gaussian_noise_2' stddev: 0.7000

カスタムガウスノ@ @ズ層を定義します。この層を作成するには,ファgaussianNoiseLayer.mを現在のフォルダ,に保存します。次に,etc / etc / etc / etc / etc / etc / etc / etc / etc / etc / etc / etc。

gnLayer1 = gaussianNoiseLayer(1.5,“new_gaussian_noise_1”);gnLayer2 = gaussianNoiseLayer(0.7,“new_gaussian_noise_2”);

replaceLayerを使用してプレ,スホルダ,層をカスタム層に置き換えます。

lgraph =替换层(lgraph,“gaussian_noise_1”, gnLayer1);lgraph =替换层(lgraph,“gaussian_noise_2”, gnLayer2);

情节を使用して,更新された層グラフをプロットします。

图表(lgraph)标题(“替换层的网络”

图中包含一个轴对象。标题为Network with replace Layers的axes对象包含一个graphplot类型的对象。

クラス名の指定

。クラスを指定しない場合,クラスは12、...、Nに自動的に設定されます。ここで,Nはクラスの数です。

層グラフのプロパティを表示して,分類層の▪▪▪ンデックスを見▪▪▪けます。

lgraph。层
ans = 15x1带有图层的图层数组: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] and padding 'same' 9 'max_pooling2d_2' 2-D Max Pooling 2x2 max pooling with stride [2 2] and padding 'same' 10 'flatten_1' Keras Flatten Flatten activations into 1-D assuming C-style (row-major) order 11 'flatten_2' Keras Flatten Flatten activations into 1-D assuming C-style (row-major) order 12 'concatenate_1' Depth concatenation Depth concatenation of 2 inputs 13 'dense_1' Fully Connected 10 fully connected layer 14 'activation_1' Softmax softmax 15 'ClassificationLayer_activation_1' Classification Output crossentropyex

分類層の名前は“ClassificationLayer_activation_1”です。分類層を表示して,プロパティを確認します。

cLayer = lgraph.Layers(end)
cLayer = ClassificationOutputLayer与属性:名称:'ClassificationLayer_activation_1'类:'auto' ClassWeights: 'none' OutputSize: 'auto'超参数LossFunction: 'crossentropyex'

この層のプロパティは“汽车”であるため,クラスを手動で指定しなければなりません。クラスを01、...、9に設定してから,。

粘土。class = string(0:9)
cLayer = ClassificationOutputLayer与属性:名称:'ClassificationLayer_activation_1'类:[0 1 2 3 4 5 6 7 8 9]ClassWeights: 'none' OutputSize: 10超参数LossFunction: 'crossentropyex'
lgraph =替换层(lgraph,“ClassificationLayer_activation_1”、粘土);

ネットワ,クの組み立て

assembleNetworkを使用して層グラフを組み立てます。この関数は,予測に使用する準備が整ったDAGNetworkオブジェクトを返します。

net =汇编网络(lgraph)
net = DAGNetwork with properties: Layers: [15x1 nnet.cnn.layer.Layer] Connections: [15x2 table] InputNames: {'input_1'} OutputNames: {'ClassificationLayer_activation_1'}

入力引数

すべて折りたたむ

層グラフ。LayerGraphオブジェクトとして指定します。層グラフを作成するには,layerGraphを使用します。

ニュ,ラルネットワ,ク。dlnetworkオブジェクトとして指定します。

置き換える層の名前。字符串スカラーまたは文字ベクトルとして指定します。

ネットワ,ク層。配列として指定します。

組み込まれている層の一覧にいては,深層学習層の一覧を参照してください。

層を再結合する方法。次のいずれかとして指定します。

  • “名字”-置き換えられた層の入力名と出力名を使用して,larrayを再結合します。置き換えられた層の入力に結合された各層にいて,larray (1)と同じ入力名をも入力に層を再結合します。置き換えられた層の出力に結合された各層について、larray(结束)と同じ出力名をも出力に層を再結合します。

  • “秩序”- - - - - -larray (1)の入力名とlarray(结束)の出力名の順序を使用して,larrayを再結合します。置き換えられた層の番目の入力に結合されている層を,larray (1)番目の入力に再結合します。置き換えられた層のj番目の出力に結合されている層を,larray(结束)j番目の出力に再結合します。

デ,タ型:字符|字符串

出力引数

すべて折りたたむ

更新された層グラフ。LayerGraphオブジェクトとして返されます。

更新されたネットワ,ク。未初期化のdlnetworkオブジェクトとして返されます。

dlnetworkオブジェクトの学習可能なパラメ,タ,を初期化するには,関数初始化を使用します。

バ,ジョン履歴

R2018bで導入