Main Content

fullyconnect

すべての重み付き入力データの加算とバイアスの適用

説明

全結合演算は、入力に重み行列を乗算してから、バイアス ベクトルを加算します。

メモ

この関数は、全結合演算を dlarray データに適用します。layerGraph オブジェクトまたは Layer 配列内に全結合演算を適用する場合は、次の層を使用します。

Y = fullyconnect(X,weights,bias) は、weights で指定された重みを使用して、X に含まれる空間データ、チャネル データ、未指定データの重み付き和を計算し、さらにバイアスを追加します。入力 X は、書式化された dlarray でなければなりません。出力 Y は、書式化された dlarray です。

X が書式化されていない dlarray である場合、Y = fullyconnect(X,weights,bias,'DataFormat',FMT) は、次元形式 FMT も指定します。出力 Y は、書式化されていない dlarray です。

すべて折りたたむ

関数 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 です。

入力引数

すべて折りたたむ

入力データ。書式化された dlarray、書式化されていない dlarray、または数値配列として指定します。X が書式化された dlarray でない場合、'DataFormat',FMT を使用して次元ラベルの形式を指定しなければなりません。X が数値配列の場合、少なくとも weightsbias のいずれかが dlarray でなければなりません。

fullyconnect 演算は、weights で指定された各出力特徴について、X'S' 次元、'C' 次元、および 'U' 次元の和の演算を実行します。X'B' 次元または 'T' 次元のサイズは保持されます。

データ型: single | double

重み。書式化された dlarray、書式化されていない dlarray、または数値配列として指定します。

weights が書式化されていない dlarray または数値配列の場合、weights の最初の次元は出力特徴の数と一致しなければなりません。weights が書式化された dlarray の場合、'C' 次元のサイズは出力特徴の数と一致しなければなりません。weights には、入力 X'S' 次元、'C' 次元、および 'U' 次元の結合後のサイズに出力特徴の数が乗算されたのと同じ数の要素が含まれていなければなりません。

データ型: single | double

バイアス定数。書式化された dlarray、書式化されていない dlarray、または数値配列として指定します。

bias の各要素は、対応する特徴出力に適用されたバイアスです。bias の要素の数は、weights の最初の次元によって指定された出力特徴の数と一致しなければなりません。

bias が書式化された dlarray の場合、大きさが 1 でない次元は 'C' のラベルが付いたチャネル次元でなければなりません。

データ型: single | double

書式設定されていない入力データの次元の順序。'DataFormat' と、データの各次元のラベルを表す文字配列または string である FMT で構成されるコンマ区切りのペアとして指定します。FMT の各文字は次のいずれかでなければなりません。

  • 'S' — 空間

  • 'C' — チャネル

  • 'B' — バッチ (サンプルや観測値など)

  • 'T' — 時間 (シーケンスなど)

  • 'U' — 指定なし

'S' または 'U' のラベルが付いた次元については、複数回指定できます。'C''B''T' のラベルについては、1 回のみ使用できます。

入力データが書式化された dlarray でないときは、'DataFormat',FMT を指定しなければなりません。

例: 'DataFormat','SSCB'

データ型: char | string

出力引数

すべて折りたたむ

重み付き出力特徴。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 のリファレンス ページに記載された全結合層の定義を参照してください。

拡張機能

C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。

GPU コード生成
GPU Coder™ を使用して NVIDIA® GPU のための CUDA® コードを生成します。

バージョン履歴

R2019b で導入