深層学習用のシンプルな有向非循環グラフ(DAG)ネットワークを作成します。数字のイメージを分類するようネットワークに学習させます。この例のシンプルなネットワークは,以下から構成されます。
ネットワークの主分岐を層配列として作成します。加算層では複数の入力が要素単位で合計されます。加算層で合計する入力数を指定します。すべての層に名前があり、すべての名前が一意でなければなりません。
層配列から層グラフを作成します。layerGraph
は层
のすべての層を順に結合します。層グラフをプロットします。
1 x 1畳み込み層を作成し,層グラフに追加します。活性化のサイズが“relu_3”
層の活性化のサイズと一致するように,畳み込みフィルターの数とストライドを指定します。この方法により,加算層で“skipConv”
層と“relu_3”
層の出力を加算できます。層がグラフに含まれることを確認するには,層グラフをプロットします。
“relu_1”
層から“添加”
層へのショートカット結合を作成します。層の作成時に加算層への入力数を 2 に指定しているため、層には“三机”
および“in2”
という名前の2つの入力があります。“relu_3”
層は既に“三机”
入力に結合されています。“relu_1”
層を“skipConv”
層に結合し,“skipConv”
層を“添加”
層の“in2”
入力に結合します。ここで加算層は“relu_3”
層と“skipConv”
層の出力を合計します。層が正しく結合されていることを確認するには,層グラフをプロットします。
数字の28 x 28のグレースケールイメージで構成される学習データと検証データを読み込みます。
学習オプションを指定してネットワークに学習させます。trainNetwork
は,ValidationFrequency
回の反復ごとに検証データを使用してネットワークを検証します。
学習済みネットワークのプロパティを表示します。ネットワークはDAGNetwork
オブジェクトになります。
net = DAGNetwork with properties: Layers: [16×1 net.cnn.layer. layer] Connections: [16×2 table] InputNames: {'input'} OutputNames: {'classOutput'}
検証イメージを分類し,精度を計算します。ネットワークは非常に正確になっています。