このページは前リリースの情報です。該当の英語のページはこのリリースで削除されています。

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

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

Kerasネットワークのインポート

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

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

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

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

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

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

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

placeholderLayers = findPlaceholderLayers (lgraph)
1' gaussian_noise ' Keras层占位符层2' gaussian_noise ' Keras层占位符层2' gaussian_noise ' Keras层占位符层

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

placeholderLayers.KerasConfiguration
ans =结构体字段:可训练的:1名:“gaussian_noise 1”stddev: 1.5000
ans =结构体字段:可训练:1名:“gaussian_noise 2”stddev: 0.7000

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

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 = 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]和池与进步填充“相同”9“max_pooling2d_2”马克斯池2 x2马克斯池步(2 - 2)和填充“相同”10“flatten_1”平c风格的平激活成一维假设c风格的(行)订单11“flatten_2”平c风格的平激活成一维假设c风格的(行)订单12的concatenate_1深度连接深度连接2输入13“dense_1”完全连接10完全连接层14的activation_1 Softmax Softmax 15“ClassificationLayer_activation_1”分类输出crossentropyex

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

粘土= lgraph.Layers(结束)
类:'auto' OutputSize: 'auto' Hyperparameters loss sfunction: 'crossentropyex'

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

粘土。类=字符串(0:9)
类:[0 1 2 3 4 5 6 7 8 9]OutputSize: 10个超参数丢失函数:'crossentropyex'
lgraph = replaceLayer (lgraph,“ClassificationLayer_activation_1”、粘土);

ネットワークの組み立て

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

净= assembleNetwork (lgraph)
net = DAGNetwork with properties: Layers:[15×1 nnet.cn .layer. layer. layer]连接:[15×2 table]

参考

|||||||

関連するトピック