主要内容

inputLayer

输入层

自 R2023b 起

    说明

    输入层将未格式化数据或具有自定义格式的数据输入到神经网络。

    创建对象

    描述

    layer = inputLayer(inputSize) 创建用于未格式化数据的输入层。 (自 R2025a 起)

    layer = inputLayer(inputSize,inputFormat) 创建输入层并指定自定义数据格式。

    示例

    layer = inputLayer(___,Name=name) 在上述语法中任何输入参量组合的基础上,额外指定层名称。例如,Name="in" 指定该层的名称为 "in"

    输入参量

    全部展开

    输入的大小,指定为由正整数或 NaN 组成的行向量。

    对于支持批量维度或时间维度为可变大小的网络,请将对应维度的大小指定为 NaN

    此参量设置 InputSize 属性。

    示例: [224 224 3]

    数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

    数据维度的描述,指定为字符向量或字符串标量。

    数据格式是一个字符串,其中每个字符描述对应数据的维度的类型。

    这些字符是:

    • "S" - 空间

    • "C" - 通道

    • "B" - 批量

    • "T" - 时间

    • "U" - 未指定

    例如,假设有一个表示一批序列的数组,其中第一个、第二个和第三个维度分别对应于通道、观测值和时间步。您可以将该数据描述为具有格式 "CBT"(通道、批量、时间)。

    如果 InputFormat"",则该层会直接将未格式化数据传递给神经网络。请确保后续层支持未格式化输入数据。 (自 R2025a 起)

    对于层输入格式,您可以指定多个标注为 "S""U" 的维度。标签 "C""B""T" 最多可以使用一次。当维数大于 2 时,输入格式中最右边的 "U" 维度对应的输入大小必须大于 1。

    有关详细信息,请参阅Deep Learning Data Formats

    此参量设置 InputFormat 属性。

    示例: "SSCB"

    示例: "SCBT"

    示例: "TCB"

    数据类型: char | string

    层名称,指定为字符向量或字符串标量。对于 Layer 数组输入,trainnetdlnetwork 函数会自动为未命名层指定名称。

    此参量设置 Name 属性。

    数据类型: char | string

    属性

    全部展开

    输入

    此 属性 为只读。

    此属性在创建后是只读的。

    输入的大小,存储为由正整数或 NaN 组成的行向量。

    对于支持批量维度或时间维度为可变大小的网络,对应值为 NaN

    数据类型: double

    此属性在创建后是只读的。

    数据维度的描述,存储为字符向量。

    数据格式是一个字符串,其中每个字符描述对应数据的维度的类型。

    这些字符是:

    • "S" - 空间

    • "C" - 通道

    • "B" - 批量

    • "T" - 时间

    • "U" - 未指定

    例如,假设有一个表示一批序列的数组,其中第一个、第二个和第三个维度分别对应于通道、观测值和时间步。您可以将该数据描述为具有格式 "CBT"(通道、批量、时间)。

    如果 InputFormat"",则该层会直接将未格式化数据传递给神经网络。请确保后续层支持未格式化输入数据。 (自 R2025a 起)

    有关详细信息,请参阅Deep Learning Data Formats

    数据类型: char

    层名称,指定为字符向量或字符串标量。对于 Layer 数组输入,trainnetdlnetwork 函数会自动为名称为 "" 的层分配一个新的唯一名称。

    InputLayer 对象将此属性存储为字符向量。

    数据类型: char | string

    此 属性 为只读。

    层输入数目。该层没有输入。

    数据类型: double

    此 属性 为只读。

    层的输入名称。该层没有输入。

    数据类型: cell

    此 属性 为只读。

    层的输出数,存储为 1。此层只有一个输出。

    数据类型: double

    此 属性 为只读。

    输出名称,存储为 {'out'}。此层只有一个输出。

    数据类型: cell

    示例

    全部折叠

    创建一个用于输入一维图像数据(三维数据,维度分别对应于空间、通道和观测值)的输入层。指定数据具有三个通道,图像高度大小为 64。指定批量维度可变。

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

    将该输入层包含在一个网络中。

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

    创建一个用于输入时空数据(四维数据,维度分别对应于空间、通道、时间和观测值)的输入层。指定数据具有三个通道,空间大小为 64。指定批量和时间维度可变。

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

    将该输入层包含在一个网络中。

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

    算法

    全部展开

    扩展功能

    全部展开

    版本历史记录

    在 R2023b 中推出

    全部展开