indexing1dLayer
説明
1 次元インデックス層は、入力データの時間次元または空間次元から、指定したインデックスのデータを抽出します。
作成
説明
は、入力データの時間次元または空間次元の最初のインデックスからデータを抽出する 1 次元インデックス層を作成します。layer
= indexing1dLayer
は、1 次元インデックス層オブジェクトを作成し、layer
= indexing1dLayer(index)Index
プロパティを設定します。
は、1 つ以上の名前と値の引数を使用して、1 次元インデックスプロパティと layer
= indexing1dLayer(___,Name=Value
)Name
プロパティを設定します。
プロパティ
1 次元インデックス
抽出するデータのインデックス。次のいずれかの値として指定します。
"first"
— 入力の最初のインデックスからデータを抽出します。"last"
— 入力の最後のインデックスからデータを抽出します。
層にパディング マスクの入力がある場合、層はデータを抽出するときにパディング値を無視します。
層にパディング マスクを表す入力があるかどうかを示すフラグ。0
(false
) または 1
(true
) として指定します。
HasPaddingMaskInput
プロパティが 0
(false
) の場合、層は、入力データに対応する "in"
という名前の 1 つの入力をもちます。この場合、層はすべての要素をデータとして扱います。
HasPaddingMaskInput
プロパティが 1
(true
) の場合、層は、それぞれ入力データおよびマスクに対応する "in"
および "mask"
という名前の 2 つの入力をもちます。この場合、パディング マスクは 1 と 0 から成る配列になります。層は、入力の要素について、マスク内の対応する要素が 1 の場合は使用し、0 の場合は無視します。
層
この プロパティ は読み取り専用です。
層への入力の数。1
または 2
として返されます。
HasPaddingMaskInput
プロパティが 0
(false
) の場合、層は、入力データに対応する "in"
という名前の 1 つの入力をもちます。この場合、層はすべての要素をデータとして扱います。
HasPaddingMaskInput
プロパティが 1
(true
) の場合、層は、それぞれ入力データおよびマスクに対応する "in"
および "mask"
という名前の 2 つの入力をもちます。この場合、パディング マスクは 1 と 0 から成る配列になります。層は、入力の要素について、マスク内の対応する要素が 1 の場合は使用し、0 の場合は無視します。
データ型: double
この プロパティ は読み取り専用です。
層の入力名。文字ベクトルの cell 配列として返されます。
HasPaddingMaskInput
プロパティが 0
(false
) の場合、層は、入力データに対応する "in"
という名前の 1 つの入力をもちます。この場合、層はすべての要素をデータとして扱います。
HasPaddingMaskInput
プロパティが 1
(true
) の場合、層は、それぞれ入力データおよびマスクに対応する "in"
および "mask"
という名前の 2 つの入力をもちます。この場合、パディング マスクは 1 と 0 から成る配列になります。層は、入力の要素について、マスク内の対応する要素が 1 の場合は使用し、0 の場合は無視します。
Indexing1DLayer
オブジェクトは、このプロパティを文字ベクトルの cell 配列として格納します。
この プロパティ は読み取り専用です。
層からの出力の数。1
として格納されます。この層には単一の出力のみがあります。
データ型: double
この プロパティ は読み取り専用です。
出力名。{'out'}
として格納されます。この層には単一の出力のみがあります。
データ型: cell
例
1 次元インデックス層を作成します。
layer = indexing1dLayer
layer = Indexing1DLayer with properties: Name: '' Index: "first" HasPaddingMaskInput: 0 Learnable Parameters No properties. State Parameters No properties. Show all properties
層グラフに 1 次元インデックス層を含めます。
numChannels = 1; embeddingOutputSize = 64; numWords = 128; maxSequenceLength = 100; maxPosition = maxSequenceLength+1; numHeads = 4; numKeyChannels = 4*embeddingOutputSize; net = dlnetwork; layers = [ sequenceInputLayer(numChannels) wordEmbeddingLayer(embeddingOutputSize,numWords,Name="word-emb") embeddingConcatenationLayer(Name="emb-cat") positionEmbeddingLayer(embeddingOutputSize,maxPosition,Name="pos-emb"); additionLayer(2,Name="add") selfAttentionLayer(numHeads,numKeyChannels,AttentionMask="causal") indexing1dLayer(Name="idx-first") fullyConnectedLayer(numWords) softmaxLayer]; net = addLayers(net,layers); net = connectLayers(net,"emb-cat","add/in2");
ニューラル ネットワーク アーキテクチャを表示します。
plot(net) axis off box off
アルゴリズム
1 次元インデックス層は、入力データの時間次元または空間次元から、指定したインデックスのデータを抽出します。
以下に例を示します。
numChannels
×numObservations
×numTimeSteps
の配列で表されるシーケンス データX
の場合 (numChannels
、numObservations
、numTimeSteps
はそれぞれ入力のチャネル数、観測値数、タイム ステップ数)、出力はX(:,:,idx)
となります。ここで、idx
はIndex
プロパティに対応するインデックスとなります。height
×numChannels
×numObservations
の配列で表される 1 次元イメージ データX
の場合 (height
、numChannels
、numObservations
は、それぞれ入力イメージの高さ、チャネル数、観測値数)、出力はX(idx,:,:)
となります。ここで、idx
はIndex
プロパティに対応するインデックスとなります。
層配列内または層グラフ内の層は、形式を整えた dlarray
オブジェクトとして後続の層にデータを渡します。dlarray
オブジェクトの形式は文字列で、各文字はデータ内の対応する次元を表します。この形式には次の文字が 1 つ以上含まれています。
"S"
— 空間"C"
— チャネル"B"
— バッチ"T"
— 時間"U"
— 指定なし
たとえば、4 次元配列として表された 2 次元イメージ データがあり、最初の 2 つの次元がイメージの空間次元に対応し、3 番目の次元がイメージのチャネルに対応し、4 番目の次元がバッチ次元に対応している場合、このイメージ データは "SSCB"
(空間、空間、チャネル、バッチ) という形式で記述できます。
functionLayer
オブジェクトを使用するか、関数 forward
と関数 predict
を dlnetwork
オブジェクトと共に使用して、カスタム層の開発などの自動微分ワークフローで、これらの dlarray
オブジェクトを操作できます。
次の表は、Indexing1DLayer
オブジェクトでサポートされている入力形式、および対応する出力形式を示しています。ソフトウェアが nnet.layer.Formattable
クラスを継承していないカスタム層、または Formattable
プロパティが 0
(false
) に設定された FunctionLayer
オブジェクトに層の出力を渡す場合、その層は形式を整えていない dlarray
オブジェクトを受け取り、この表に示された形式に従って次元が並べられます。ここには一部の形式のみを示します。層では、追加の "S"
(空間) 次元または "U"
(未指定) 次元をもつ形式など、追加の形式がサポートされている場合があります。
入力形式 | 出力形式 |
---|---|
"SCB" (spatial、channel、batch) | "CB" (channel、batch) |
"CBT" (channel、batch、time) | "CB" (channel、batch) |
"SC" (spatial、channel) | "CU" (channel、unspecified) |
"SB" (spatial、batch) | "BU" (batch、unspecified) |
"SU" (spatial、unspecified) | "UU" (unspecified、unspecified) |
dlnetwork
オブジェクトでは、Indexing1DLayer
オブジェクトもこれらの入力形式と出力形式の組み合わせをサポートします。
入力形式 | 出力形式 |
---|---|
"CT" (channel、time) | "CU" (channel、unspecified) |
"BT" (batch、time) | "BU" (batch、unspecified) |
"TU" (time、unspecified) | "UU" (unspecified、unspecified) |
拡張機能
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
GPU コード生成
GPU Coder™ を使用して NVIDIA® GPU のための CUDA® コードを生成します。
バージョン履歴
R2023b で導入MATLAB® Coder™ を使用して、C または C++ のコードを生成します。または、GPU Coder™ を使用して、NVIDIA® GPU 用の CUDA® コードを生成します。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- 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)