主要内容

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

予測用の多出力ネットワークの組み立て

この例では,予測用の複数の出力ネットワークを組み立てる方法を説明します。

予測用のdlnetworkオブジェクトを使用する代わりに,関数assembleNetworkを使用して,予測の準備が整っているDAGNetwork内にネットワークを組み立てることができます。これにより,データストアなどの他のデータ型で関数预测を使用できます。

モデル関数とパラメーターの読み込み

垫ファイルdlnetDigits.matからモデルパラメーターを読み込みます。垫ファイルには、カテゴリカル ラベルのスコアと数字イメージの回転角度の両方を予測するdlnetworkオブジェクト,ならびにクラス名が含まれます。

s =负载(“dlnetDigits.mat”);dlnet = s.dlnet;一会= s.classNames;

予測用のネットワークの組み立て

関数layerGraphを使用して,dlnetworkオブジェクトから層グラフを抽出します。

lgraph = layerGraph (dlnet);

層グラフに出力層は含まれません。関数addLayersおよびconnectLayersを使用し,層グラフに分類層と回帰層を追加します。

层= classificationLayer (“类”一会,“名字”“coutput”);lgraph = addLayers (lgraph层);lgraph = connectLayers (lgraph,“softmax”“coutput”);层= regressionLayer (“名字”“routput”);lgraph = addLayers (lgraph层);lgraph = connectLayers (lgraph,“取得”“routput”);

ネットワークのプロットを表示します。

图绘制(lgraph)

関数assembleNetworkを使用してネットワークを組み立てます。

净= assembleNetwork (lgraph)
net = DAGNetwork with properties: Layers: [19x1 nnet.cnn.layer.Layer] Connections: [19x2 table] InputNames: {'in'} OutputNames: {'coutput' 'routput'}

新しいデータの予測の実行

テストデータを読み込みます。

[XTest, Y1Test Y2Test] = digitTest4DArrayData;

組み立てたネットワークを使用して予測を行うには,関数预测を使用します。分類出力のカテゴリカルラベルを返すには,“ReturnCategorical”オプションを真正的に設定します。

[Y1Pred, Y2Pred] =预测(XTest净,“ReturnCategorical”,真正的);

分類精度を評価します。

精度=意味着(Y1Pred = = Y1Test)
精度= 0.9870

回帰精度を評価します。

angleRMSE = sqrt(mean(Y2Pred - Y2Test).^2))
angleRMSE =6.0091

一部のイメージと,その予測を表示します。予測角度を赤,正解ラベルを緑で表示します。

idx = randperm(大小(XTest, 4), 9);数字i = XTest(:,:,:,idx(i));imshow (I)深圳=大小(我,1);抵消= sz / 2;thetaPred = Y2Pred (idx (i));情节(抵消* [1-tand (thetaPred) 1 +罐内(thetaPred)], [sz 0],“r——”) thetaValidation = Y2Test(idx(i));情节(抵消* [1-tand (thetaValidation) 1 +罐内(thetaValidation)], [sz 0],“g——”)举行标签=字符串(Y1Pred (idx (i)));标题(”的标签:“+标签)结束

参考

||||||

関連するトピック