fullyconnect
説明
全結合演算は、入力に重み行列を乗算してから、バイアス ベクトルを加算します。
メモ
この関数は、全結合演算を dlarray
データに適用します。dlnetwork
オブジェクト内に全結合演算を適用する場合は、fullyConnectedLayer
を使用します。
例
全入力データから出力特徴への全結合
関数 fullyconnect
は、重み付き和を使用して、観測値のすべての入力を各出力特徴に接続します。
入力データを、高さと幅が 12、チャネル数が 32 の乱数値による単一の観測値として作成します。
height = 12;
width = 12;
channels = 32;
observations = 1;
X = rand(height,width,channels,observations);
X = dlarray(X,'SSCB');
学習可能なパラメーターを作成します。この演算では 10 個の出力特徴があります。
outputFeatures = 10; weights = ones(outputFeatures,height,width,channels); bias = ones(outputFeatures,1);
fullyconnect
演算を適用します。
Y = fullyconnect(X,weights,bias);
Y = 10(C) × 1(B) dlarray 1.0e+03 * 2.3266 2.3266 2.3266 2.3266 2.3266 2.3266 2.3266 2.3266 2.3266 2.3266
出力 Y
は、サイズが 10 である 1 つのチャネル次元、および大きさが 1 である 1 つのバッチ次元をもつ 2 次元の dlarray
です。
入力引数
X
— 入力データ
dlarray
| 数値配列
入力データ。形式を整えた dlarray
、形式を整えていない dlarray
、または数値配列として指定します。X
が、形式を整えた dlarray
でない場合、'DataFormat',FMT
を使用して次元ラベルの形式を指定しなければなりません。X
が数値配列の場合、少なくとも weights
と bias
のいずれかが dlarray
でなければなりません。
fullyconnect
演算は、weights
で指定された各出力特徴について、X
の 'S'
次元、'C'
次元、および 'U'
次元の和の演算を実行します。X
の 'B'
次元または 'T'
次元のサイズは保持されます。
データ型: single
| double
weights
— 重み
dlarray
| 数値配列
重み。形式を整えた dlarray
、形式を整えていない dlarray
、または数値配列として指定します。
weights
が、形式を整えていない dlarray
または数値配列の場合、weights
の最初の次元は出力特徴の数と一致しなければなりません。weights
が、形式を整えた dlarray
の場合、'C'
次元のサイズは出力特徴の数と一致しなければなりません。weights
には、入力 X
の 'S'
次元、'C'
次元、および 'U'
次元の結合後のサイズに出力特徴の数が乗算されたのと同じ数の要素が含まれていなければなりません。
データ型: single
| double
bias
— バイアス定数
dlarray
ベクトル | 数値ベクトル
バイアス定数。形式を整えた dlarray
、形式を整えていない dlarray
、または数値配列として指定します。
bias
の各要素は、対応する特徴出力に適用されたバイアスです。bias
の要素の数は、weights
の最初の次元によって指定された出力特徴の数と一致しなければなりません。
bias
が、形式を整えた dlarray
の場合、大きさが 1 でない次元は 'C'
のラベルが付いたチャネル次元でなければなりません。
データ型: single
| double
FMT
— データの次元の説明
文字ベクトル | string スカラー
データの次元の説明。文字ベクトルまたは string スカラーとして指定します。
データ形式は文字列で、各文字は対応するデータ次元のタイプを表します。
各文字は以下のとおりです。
"S"
— 空間"C"
— チャネル"B"
— バッチ"T"
— 時間"U"
— 指定なし
たとえば、シーケンスのバッチを含み、1 番目、2 番目、および 3 番目の次元がそれぞれチャネル、観測値、およびタイム ステップに対応する配列があるとします。この配列の形式を "CBT"
(チャネル、バッチ、時間) として指定できます。
"S"
または "U"
のラベルが付いた次元については、複数回指定できます。"C"
、"B"
、"T"
のラベルについては、1 回のみ使用できます。ソフトウェアは、2 番目の次元の後ろにある大きさが 1 の "U"
次元を無視します。
入力データが、形式を整えた dlarray
オブジェクトでない場合は、FMT
オプションを指定しなければなりません。
詳細については、Deep Learning Data Formatsを参照してください。
データ型: char
| string
出力引数
Y
— 重み付き出力特徴
dlarray
重み付き出力特徴。dlarray
として返されます。出力 Y
の基となるデータ型は、入力 X
と同じです。
入力 X
が、形式を整えた dlarray
の場合、出力 Y
は、出力特徴を表す 'C'
のラベルが付いた次元を 1 つもち、さらに、入力 X
に含まれているのと同じ数の 'B'
次元または 'T'
次元をもちます (それらのいずれかまたは両方の次元が存在する場合)。X
に 'B'
次元も 'T'
次元も含まれていない場合、Y
の形式は 'CB'
になります。ここで、'B'
は大きさが 1 の次元です。
入力 X
が、形式を整えた dlarray
ではない場合、出力 Y
の形式は整えられません。Y
の最初の次元に出力特徴が格納されます。Y
のその他の次元は、X
の 'B'
次元および 'T'
次元に対応し (それらのいずれかまたは両方の次元が存在する場合)、FMT
での順序と同じ順序で与えられます。X
に 'B'
次元も 'T'
次元も含まれていない場合、Y
の最初の次元に出力特徴が格納され、2 番目の次元は大きさが 1 になります。
アルゴリズム
全結合演算
関数 fullyconnect
は、前の演算で得られたすべての出力を関数 fullyconnect
の出力に結合します。詳細については、fullyConnectedLayer
のリファレンス ページに記載された全結合層の定義を参照してください。
深層学習配列の形式
深層学習のほとんどのネットワークと関数は、入力データの各次元に対して異なる方法で演算を行います。
たとえば、LSTM 演算は入力データの時間次元を反復処理し、バッチ正規化演算は入力データのバッチ次元を正規化します。
ラベルが付いた次元をもつ入力データ、または追加のレイアウト情報をもつ入力データを指定するには、"データ形式" を使用します。
データ形式は文字列で、各文字は対応するデータ次元のタイプを表します。
各文字は以下のとおりです。
"S"
— 空間"C"
— チャネル"B"
— バッチ"T"
— 時間"U"
— 指定なし
たとえば、シーケンスのバッチを含み、1 番目、2 番目、および 3 番目の次元がそれぞれチャネル、観測値、およびタイム ステップに対応する配列があるとします。この配列の形式を "CBT"
(チャネル、バッチ、時間) として指定できます。
形式を整えた入力データを作成するには、dlarray
オブジェクトを作成し、2 番目の引数を使用して形式を指定します。
形式を整えていないデータを使用して追加のレイアウト情報を指定するには、引数 FMT
を使用して形式を指定します。
詳細については、Deep Learning Data Formatsを参照してください。
拡張機能
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
GPU コード生成
GPU Coder™ を使用して NVIDIA® GPU のための CUDA® コードを生成します。
GPU 配列
Parallel Computing Toolbox™ を使用してグラフィックス処理装置 (GPU) 上で実行することにより、コードを高速化します。
使用上の注意および制限:
以下の入力引数の少なくとも 1 つが、
gpuArray
型の基になるデータをもつgpuArray
またはdlarray
である場合、この関数は GPU で実行されます。X
weights
bias
詳細については、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2019b で導入
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)