このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
assembleNetwork
事前学習済みの層から深層学習ネットワークを組み立てる
説明
assembleNetwork
は、学習を行わずに層から深層学習ネットワークを作成します。
assembleNetwork
は次のタスクで使用します。
層配列または層グラフから予測の準備が整ったネットワークへの変換。
インポートされた層からのネットワークの組み立て。
学習済みネットワークの重みの変更。
ネットワークにゼロから学習させるには、trainNetwork
を使用します。
は、層配列または層グラフ assembledNet
= assembleNetwork(layers
)layers
を使用して予測の準備が整った深層学習ネットワークを組み立てます。
例
事前学習済みの Keras 層からのネットワークの組み立て
事前学習済みの Keras ネットワークから層をインポートし、サポートされていない層をカスタム層に置き換え、予測の準備が整ったネットワークをこれらの層から組み立てます。
Keras ネットワークのインポート
Keras ネットワーク モデルから層をインポートします。'digitsDAGnetwithnoise.h5'
のネットワークは数字のイメージを分類します。
filename = 'digitsDAGnetwithnoise.h5'; lgraph = importKerasLayers(filename,'ImportWeights',true);
Warning: Unable to import some Keras layers, because they are not supported by the Deep Learning Toolbox. They have been replaced by placeholder layers. To find these layers, call the function findPlaceholderLayers on the returned object.
Keras ネットワークには、Deep Learning Toolbox™ ではサポートされていない層がいくつか含まれています。関数 importKerasLayers
は警告を表示して、サポートされていない層をプレースホルダー層に置き換えます。
プレースホルダー層の置き換え
プレースホルダー層を置き換えるには、まず、置き換える層の名前を特定します。findPlaceholderLayers
を使用してプレースホルダー層を見つけ、これらの層の Keras 構成を表示します。
placeholderLayers = findPlaceholderLayers(lgraph); placeholderLayers.KerasConfiguration
ans = struct with fields:
trainable: 1
name: 'gaussian_noise_1'
stddev: 1.5000
ans = struct with fields:
trainable: 1
name: 'gaussian_noise_2'
stddev: 0.7000
補助関数 gaussianNoiseLayer
を使用して、インポートした 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);
クラス名の指定
インポートした分類層にはクラスが含まれていないため、ネットワークを組み立てる前にこれらを指定しなければなりません。クラスを指定しない場合、クラスは 1
、2
、...、N
に自動的に設定されます。ここで、N
はクラスの数です。
分類層の名前は 'ClassificationLayer_activation_1'
です。クラスを 0
、1
、...、9
に設定してから、インポートした分類層を新しい層に置き換えます。
cLayer = lgraph.Layers(end);
cLayer.Classes = string(0:9);
lgraph = replaceLayer(lgraph,'ClassificationLayer_activation_1',cLayer);
ネットワークの組み立て
assembleNetwork
を使用して層グラフを組み立てます。この関数は、予測に使用する準備が整った DAGNetwork
オブジェクトを返します。
net = assembleNetwork(lgraph)
net = DAGNetwork with properties: Layers: [15x1 nnet.cnn.layer.Layer] Connections: [15x2 table] InputNames: {'input_1'} OutputNames: {'ClassificationLayer_activation_1'}
入力引数
layers
— ニューラル ネットワーク層
Layer
配列 | LayerGraph
オブジェクト
ニューラル ネットワーク層。Layer
配列または LayerGraph
オブジェクトとして指定します。
すべての層が順に結合されたニューラル ネットワークを作成する場合、Layer
配列を入力引数として使用できます。この場合、返されるニューラル ネットワークは、SeriesNetwork
オブジェクトになります。
有向非循環グラフ (DAG) ニューラル ネットワークは複雑な構造を持ち、層は複数の入出力を持てます。DAG ニューラル ネットワークを作成するには、ニューラル ネットワーク アーキテクチャを LayerGraph
オブジェクトとして指定して、その層グラフを assembleNetwork
の入力引数として使用します。
関数 assembleNetwork
は、最大で 1 つのシーケンス入力層をもつニューラル ネットワークをサポートします。
組み込み層の一覧については、深層学習層の一覧を参照してください。
出力引数
assembledNet
— 組み立て済みネットワーク
SeriesNetwork
オブジェクト | DAGNetwork
オブジェクト
予測の準備が整った組み立て済みネットワーク。SeriesNetwork
オブジェクトまたは DAGNetwork
オブジェクトとして返されます。返されるネットワークは、入力引数 layers
によって異なります。
layers
が配列Layer
の場合、assembledNet
はSeriesNetwork
オブジェクトになります。layers
がLayerGraph
オブジェクトの場合、assembledNet
はDAGNetwork
オブジェクトになります。
バージョン履歴
R2018b で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)