主要内容

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

DAGNetwork

深層学習用の有向非循環グラフ(dag)ネットワ,ク

説明

DAGネットワークは,層が有向非循環グラフとして配置された深層学習用のニューラルネットワークです。DAGネットワークは,層に複数の層からの入力および複数の層への出力が含まれる,より複雑なアーキテクチャを持つことができます。

作成

DAGNetworkオブジェクトは,次のようにいくかの方法で作成できます。

メモ

他の事前学習済みのネットワクにいては,事前学習済みの深層ニュ,ラルネットワ,クを参照してください。

プロパティ

すべて展開する

このプロパティは読み取り専用です。

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

このプロパティは読み取り専用です。

層の結合。2列の表として指定します。

各表行は層グラフの結合を表します。1列目のは,各結合の結合元を指定します。2列目の目的地は,各結合の結合先を指定します。結合元と結合先は層の名前であるか,“layerName / IOName”の形式を取ります。“IOName”は層の入力または出力の名前です。

デ,タ型:表格

このプロパティは読み取り専用です。

ネットワ,ク入力層の名前。文字ベクトルのcell配列として指定します。

デ,タ型:细胞

ネットワ,ク出力層の名前。文字ベクトルのcell配列として指定します。

デ,タ型:细胞

オブジェクト関数

激活 深層学習ネットワ,ク層の活性化の計算
分类 学習済み深層学習ニュ,ラルネットワ,クを使用したデ,タの分類
预测 学習済み深層学習ニュ,ラルネットワ,クを使用した応答の予測
情节 绘制神经网络层图

すべて折りたたむ

深層学習用のシンプルな有向非循環グラフ(dag)ネットワ,クを作成します。数字のメジを分類するようネットワクに学習させます。この例のシンプルなネットワ,クは,以下から構成されます。

  • 逐次結合層による主分岐。

  • 単一の1 × 1畳み込み層を含む“ショ,トカット結合”。ショートカット結合は,パラメーターの勾配がネットワークの出力層からより初期の層へとよりスムーズに流れるようにします。

ネットワ,クの主分岐を層配列として作成します。加算層では複数の入力が要素単位で合計されます。加算層で合計する入力数を指定します。後で簡単に結合を追加できるように,最初のReLU層と加算層の名前を指定します。

图层= [imageInputLayer([28 28 1])卷积2dlayer (5,16,“填充”“相同”reluLayer()“名字”“relu_1”32岁的)convolution2dLayer (3“填充”“相同”“步”,2)卷积2dlayer (3,32,“填充”“相同”(2)“名字”“添加”) averagePooling2dLayer (2“步”,2) fullyConnectedLayer(10) softmaxLayer classificationLayer];

層配列から層グラフを作成します。layerGraphのすべての層を順に結合します。層グラフをプロットします。

lgraph = layerGraph(图层);图绘制(lgraph)

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

1 × 1畳み込み層を作成し,層グラフに追加します。活性化のサイズが3番目のReLU層の活性化のサイズと一致するように,畳み込みフィルターの数とストライドを指定します。この方法により,加算層で3番目のReLU層と1 × 1畳み込み層の出力を加算できます。層がグラフに含まれることを確認するには,層グラフをプロットします。

skipConv =卷积2dlayer (1,32,“步”,2,“名字”“skipConv”);lgraph = addLayers(lgraph,skipConv);图绘制(lgraph)

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

“relu_1”層から“添加”層へのショ,トカット結合を作成します。層の作成時に加算層への入力数を 2 に指定しているため、層には“三机”および“in2”という名前の2の入力があります。3番目のReLU層は既に“三机”入力に結合されています。“relu_1”層を“skipConv”層に結合し,“skipConv”層を“添加”層の“in2”入力に結合します。ここで加算層は3番目のReLU層と“skipConv”層の出力を合計します。層が正しく結合されていることを確認するには,層グラフをプロットします。

lgraph = connectLayers(“relu_1”“skipConv”);lgraph = connectLayers(“skipConv”“添加/ in2”);图绘制(lgraph);

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

数字の28 x 28のグレースケールイメージで構成される学習データと検証データを読み込みます。

[XTrain,YTrain] = digitTrain4DArrayData;[XValidation,YValidation] = digitTest4DArrayData;

学習オプションを指定してネットワ,クに学習させます。trainNetworkは,ValidationFrequency回の反復ごとに検証デ,タを使用してネットワ,クを検証します。

选项= trainingOptions(“个”...“MaxEpochs”8...“洗牌”“every-epoch”...“ValidationData”{XValidation, YValidation},...“ValidationFrequency”30岁的...“详细”假的,...“阴谋”“训练进步”);net = trainNetwork(XTrain,YTrain,lgraph,options);

图训练进度(07-08-2021 03:40:30)包含2个axis对象和另一个类型为uigridlayout的对象。坐标轴对象1包含15个类型为patch、text、line的对象。坐标轴对象2包含15个类型为patch、text、line的对象。

学習済みネットワ,クのプロパティを表示します。ネットワ,クはDAGNetworkオブジェクトになります。

net = DAGNetwork with properties: Layers: [16x1 nnet.cnn.layer.Layer] Connections: [16x2 table] InputNames: {'imageinput'} OutputNames: {'classoutput'}

検証。ネットワ,クは非常に正確になっています。

ypredict = classification (net,XValidation);accuracy = mean(yexpected == YValidation)
准确度= 0.9940

拡張機能

バ,ジョン履歴

R2017bで導入