メインコンテンツ

inputLayer

R2026b

    説明

    入力層は、形式を整えていないデータまたはカスタム形式のデータをニューラル ネットワークに入力します。

    • 2 次元イメージ入力の場合、imageInputLayer を使用します。

    • 3 次元イメージ入力の場合、image3dInputLayer を使用します。

    • シーケンス入力および時系列入力の場合、sequenceInputLayer を使用します。

    • 表形式入力および特徴データ入力の場合、featureInputLayer を使用します。

    作成

    説明

    layer = inputLayer(inputSize) は、形式を整えていないデータの入力層を作成します (R2025a 以降)。

    layer = inputLayer(inputSize,inputFormat) は、入力層を作成して、カスタムのデータ形式を指定します。

    例

    layer = inputLayer(___,Name=Value) では、前の構文の入力引数の任意の組み合わせに加えて、1 つ以上の名前と値の引数を使用してオプションを指定します。たとえば、Name="in" は、層の名前が "in" であることを指定します。

    入力引数

    すべて展開する

    入力のサイズ。正の整数または NaN から成る行ベクトルとして指定します。

    可変サイズのバッチ次元または時間次元をサポートするネットワークの場合、対応する次元のサイズを NaN として指定します。

    この引数は InputSize プロパティを設定します。

    例: [224 224 3]

    データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

    データの次元の説明。文字ベクトルまたは string スカラーとして指定します。

    深層学習のデータ形式は文字列で、各文字は対応するデータ次元のタイプを表します。各文字は以下のとおりです。

    • "S" — 空間

    • "C" — チャネル

    • "B" — バッチ

    • "T" — 時間

    • "U" — 指定なし

    たとえば、シーケンスのバッチを表し、1 番目、2 番目、および 3 番目の次元がそれぞれチャネル、観測値、およびタイム ステップに対応する配列があるとします。データは "CBT" (チャネル、バッチ、時間) の形式で記述できます。

    InputFormat が "" である場合、層は形式を整えていないデータをニューラル ネットワークに直接渡します。後続の層が形式を整えていない入力データをサポートしていることを確認してください (R2025a 以降)。

    層の入力形式では、"S" または "U" のラベルが付いた次元を複数回指定できます。"C"、"B"、"T" のラベルについては、1 回のみ使用できます。次元数が 2 より大きい場合、入力形式の右端にある "U" 次元に対応する入力サイズは 1 より大きくなければなりません。

    詳細については、深層学習のデータ形式を参照してください。

    この引数は InputFormat プロパティを設定します。

    例: "SSCB"

    例: "SCBT"

    例: "TCB"

    データ型: char | string

    名前と値の引数

    すべて展開する

    オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。

    例: inputLayer([3 1],"CB",Name="in") は "in" という名前の入力層を作成します。

    R2026b 以降

    入力検証関数。次のいずれかとして指定します。

    • "auto" — 入力データのサイズと形式が層の構成と一致していることを確認します。

    • 構文 f(X,info) の関数ハンドル — 指定された関数を学習時および予測時に呼び出します。入力データが無効な場合、関数はエラーをスローします。

    カスタム関数を指定する場合、引数 X が入力データとなり、形式を整えた dlarray オブジェクトとして指定します。引数 info は、InputSize と InputFormat というフィールドをもつ構造体であり、対応する層プロパティ値が格納されます。

    たとえば、次の関数を使って、層入力に正の値のみが含まれていることをチェックできます。

    function inputMustBePositive(X,info)
    
    if any(X<=0,"all")
        error("Input must be positive.")
    end
    
    end
    この関数を検証に使用するには、この関数をスクリプトに含めるか、関数を inputMustBePositive.m というファイルとして保存し、引数を @inputMustBePositive に設定します。

    この引数は InputValidationFcn プロパティを設定します。

    データ型: char | string | function_handle

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

    この引数は Name プロパティを設定します。

    データ型: char | string

    プロパティ

    すべて展開する

    入力

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

    このプロパティは、オブジェクト作成後、読み取り専用になります。InputLayer オブジェクトを作成する場合、このプロパティを設定するには、対応する位置入力の引数を使用します。

    入力のサイズ。正の整数または NaN の行ベクトルとして保存されます。

    可変サイズのバッチ次元または時間次元をサポートするネットワークの場合、対応する値は NaN となります。

    データ型: double

    このプロパティは、オブジェクト作成後、読み取り専用になります。InputLayer オブジェクトを作成する場合、このプロパティを設定するには、対応する位置入力の引数を使用します。

    データの次元の説明。文字ベクトルとして保存されます。

    深層学習のデータ形式は文字列で、各文字は対応するデータ次元のタイプを表します。各文字は以下のとおりです。

    • "S" — 空間

    • "C" — チャネル

    • "B" — バッチ

    • "T" — 時間

    • "U" — 指定なし

    たとえば、シーケンスのバッチを表し、1 番目、2 番目、および 3 番目の次元がそれぞれチャネル、観測値、およびタイム ステップに対応する配列があるとします。データは "CBT" (チャネル、バッチ、時間) の形式で記述できます。

    InputFormat が "" である場合、層は形式を整えていないデータをニューラル ネットワークに直接渡します。後続の層が形式を整えていない入力データをサポートしていることを確認してください (R2025a 以降)。

    詳細については、深層学習のデータ形式を参照してください。

    データ型: char

    R2026b 以降

    このプロパティは、オブジェクト作成後、読み取り専用になります。InputLayer オブジェクトを作成する場合、このプロパティを設定するには、対応する名前と値の引数を使用します。

    入力検証関数。次のいずれかとして保存されます。

    • 'auto' — 入力データのサイズと形式が層の構成と一致していることを確認します。

    • 構文 f(X,info) の関数ハンドル — 指定された関数を学習時および予測時に呼び出します。入力データが無効な場合、関数はエラーをスローします。

    データ型: char | function_handle

    層

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

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

    データ型: char | string

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

    層の入力の数。この層には入力がありません。

    データ型: double

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

    層の入力名。この層には入力がありません。

    データ型: cell

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

    層からの出力の数。1 として表されます。この層には単一の出力のみがあります。

    データ型: double

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

    出力名。{'out'} として表されます。この層には単一の出力のみがあります。

    例

    すべて折りたたむ

    1 次元イメージ データ (空間、チャネル、観測値に対応する次元をもつ 3 次元データ) を入力する入力層を作成します。データに 3 つのチャネルがあり、イメージの高さのサイズが 64 であることを指定します。バッチ次元が可変であることを指定します。

    inputSize = [64 3 NaN];
    inputFormat = "SCB";
    layer = inputLayer(inputSize,inputFormat)
    layer = 
      InputLayer with properties:
    
                      Name: ''
                 InputSize: [64 3 NaN]
               InputFormat: 'SCB'
        InputValidationFcn: 'auto'
    
    

    入力層をネットワークに含めます。

    layers = [
        inputLayer([64 3 NaN],"SCB")
        convolution1dLayer(5,32)
        batchNormalizationLayer
        reluLayer
        fullyConnectedLayer(10)
        softmaxLayer];

    時空間データ (空間、チャネル、時間、観測値に対応する次元をもつ 4 次元データ) を入力する入力層を作成します。データに 3 つのチャネルがあり、空間のサイズが 64 であることを指定します。バッチ次元と時間次元が可変であることを指定します。

    inputSize = [64 3 NaN NaN];
    inputFormat = "SCBT";
    layer = inputLayer(inputSize,inputFormat)
    layer = 
      InputLayer with properties:
    
                      Name: ''
                 InputSize: [64 3 NaN NaN]
               InputFormat: 'SCBT'
        InputValidationFcn: 'auto'
    
    

    入力層をネットワークに含めます。

    layers = [
        inputLayer([64 3 NaN NaN],"SCBT")
        convolution1dLayer(5,32)
        batchNormalizationLayer
        reluLayer
        globalAveragePooling1dLayer
        flattenLayer
        lstmLayer(100,OutputMode="last")
        fullyConnectedLayer(10)
        softmaxLayer];

    アルゴリズム

    すべて展開する

    拡張機能

    すべて展開する

    バージョン履歴

    R2023b で導入

    すべて展開する