メインコンテンツ

indexing1dLayer

1 次元インデックス層

R2023b 以降

    説明

    1 次元インデックス層は、入力データの時間次元または空間次元から、指定したインデックスのデータを抽出します。

    作成

    説明

    layer = indexing1dLayer は、入力データの時間次元または空間次元の最初のインデックスからデータを抽出する 1 次元インデックス層を作成します。

    layer = indexing1dLayer(index) は、1 次元インデックス層オブジェクトを作成し、Index プロパティを設定します。

    layer = indexing1dLayer(___,Name=Value) は、1 つ以上の名前と値の引数を使用して、1 次元インデックスプロパティと Name プロパティを設定します。

    プロパティ

    すべて展開する

    1 次元インデックス

    抽出するデータのインデックス。次のいずれかの値として指定します。

    • "first" — 入力の最初のインデックスからデータを抽出します。

    • "last" — 入力の最後のインデックスからデータを抽出します。

    層にパディング マスクの入力がある場合、層はデータを抽出するときにパディング値を無視します。

    層にパディング マスクを表す入力があるかどうかを示すフラグ。0 (false) または 1 (true) として指定します。

    HasPaddingMaskInput プロパティが 0 (false) の場合、層は、入力データに対応する "in" という名前の 1 つの入力をもちます。この場合、層はすべての要素をデータとして扱います。

    HasPaddingMaskInput プロパティが 1 (true) の場合、層は、それぞれ入力データおよびマスクに対応する "in" および "mask" という名前の 2 つの入力をもちます。この場合、パディング マスクは 1 と 0 から成る配列になります。層は、入力の要素について、マスク内の対応する要素が 1 の場合は使用し、0 の場合は無視します。

    層の名前。文字ベクトルまたは string スカラーとして指定します。Layer 配列入力の場合、trainnet 関数および dlnetwork 関数は、名前のない層に自動的に名前を割り当てます。

    Indexing1DLayer オブジェクトは、このプロパティを文字ベクトルとして格納します。

    データ型: char | string

    この プロパティ は読み取り専用です。

    層への入力の数。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

    Figure contains an axes object. The hidden axes object contains an object of type graphplot.

    アルゴリズム

    すべて展開する

    拡張機能

    すべて展開する

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

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

    バージョン履歴

    R2023b で導入

    すべて展開する