主要内容

このペジの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

事前学習済みのKeras層からのネットワクの組み立て

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

Kerasネットワクのト

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

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

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

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

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

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

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

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

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

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

placeholderLayers。KerasConfiguration
ans =带有字段的结构:可培训:1个名称:'gaussian_noise_1' stddev: 1.5000
ans =带有字段的结构:可培训:1个名称:' gaussian_nois_2 ' stddev: 0.7000

カスタムガウスノ邮箱ズ層を定義します。この層を作成するには、ファ以及ルgaussianNoiseLayer.mを現在のフォルダに保存します。次に,ereplicationンポトしたKeras層と同じ構成を持。

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)标题(“替换层的网络”

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

クラス名の指定

e .ンポトした分類層にクラスが含まれていない場合,予測の前にこれらを指定しなければなりません。クラスを指定しない場合,クラスは12、...、Nに自動的に設定されます。ここで,Nはクラスの数です。

層グラフのプロパティを表示して,分類層の。

lgraph。层
带有图层的图层数组: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]和池与进步padding 'same' 9 'max_pooling2d_2' Max Pooling 2x2 Max Pooling with stride[2 2]和padding 'same' 10 ' flat_1 ' Keras Flatten Flatten activation into 1-D假设C-style (row-major) order 11 ' flat_2 ' Keras Flatten activation into 1-D假设C-style (row-major) order 12 'concatenate_1' Depth concatenation '两个输入的深度连接13 'dense_1' Fully Connected 10全连接layer 14 'activation_1' Softmax Softmax 15 'ClassificationLayer_activation_1' Classification输出crossentropyex

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

cLayer = lgraph.Layers(结束)
cLayer = ClassificationOutputLayer属性:Name: 'ClassificationLayer_activation_1' Classes: 'auto' ClassWeights: 'none' OutputSize: 'auto' Hyperparameters: 'crossentropyex'

この層のプロパティは“汽车”であるため,クラスを手動で指定しなければなりません。クラスを01、...、9に設定してから、ンポ、トした分類層を新しい層に置き換えます。

粘土。Classes = string(0:9)
cLayer = ClassificationOutputLayer with properties: Name: 'ClassificationLayer_activation_1' Classes: [0 1 2 3 4 5 6 7 8 9] ClassWeights: 'none' OutputSize: 10 Hyperparameters LossFunction: 'crossentropyex'
lgraph = replaceLayer(lgraph,“ClassificationLayer_activation_1”、粘土);

ネットワクの組み立て

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

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

参考

|||||||

関連するトピック