Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

RegressionOutputLayer

回归输出层

不建议使用 regressionLayer。请改用 trainnet 函数,并将损失函数设置为 "mse"。有关详细信息,请参阅版本历史记录

说明

回归层计算回归任务的半均方误差损失。

创建对象

使用 regressionLayer 创建一个回归输出层。

属性

全部展开

回归输出

响应的名称,指定为字符向量元胞数组或字符串数组。在训练时,软件根据训练数据自动设置响应名称。默认值为 {}

数据类型: cell

软件用于训练的损失函数,指定为 'mean-squared-error'

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

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

数据类型: char | string

层的输入数,返回为 1。此层只接受一个输入。

数据类型: double

输入名称,返回为 {'in'}。此层只接受一个输入。

数据类型: cell

层的输出的数目,以 0 形式返回。此层没有输出。

数据类型: double

层的输出的名称,以 {} 形式返回。此层没有输出。

数据类型: cell

示例

全部折叠

创建一个回归输出层。

创建一个名为 'routput' 的回归输出层。

layer = regressionLayer('Name','routput')
layer = 
  RegressionOutputLayer with properties:

             Name: 'routput'
    ResponseNames: {}

   Hyperparameters
     LossFunction: 'mean-squared-error'

回归的默认损失函数是均方误差。

在层数组中包含一个回归输出层。

layers = [ ...
    imageInputLayer([28 28 1])
    convolution2dLayer(12,25)
    reluLayer
    fullyConnectedLayer(1)
    regressionLayer]
layers = 
  5x1 Layer array with layers:

     1   ''   Image Input         28x28x1 images with 'zerocenter' normalization
     2   ''   2-D Convolution     25 12x12 convolutions with stride [1  1] and padding [0  0  0  0]
     3   ''   ReLU                ReLU
     4   ''   Fully Connected     1 fully connected layer
     5   ''   Regression Output   mean-squared-error

详细信息

全部展开

版本历史记录

在 R2017a 中推出

全部折叠

R2024a: 不推荐

从 R2024a 开始,不推荐使用 RegressionOutputLayer 对象,请改用 trainnet 并将损失函数设置为 "mse"

目前没有停止支持 RegressionOutputLayer 对象的计划。但是,推荐改用 trainnet 函数,该函数具有以下优势:

  • trainnet 支持 dlnetwork 对象,这些对象支持更广泛的网络架构,您可以创建或从外部平台导入这些网络架构。

  • trainnet 使您能够轻松指定损失函数。您可以从内置损失函数中进行选择或指定自定义损失函数。

  • trainnet 输出 dlnetwork 对象,这是一种统一的数据类型,支持网络构建、预测、内置训练、可视化、压缩、验证和自定义训练循环。

  • trainnet 通常比 trainNetwork 快。

下表显示了 trainNetwork 函数与 RegressionOutputLayer 对象的一些典型用法,以及如何更新您的代码以改用 trainnet 函数。

不推荐推荐
net = trainNetwork(X,T,layers,options),其中 layers 包含 RegressionOutputLayer 对象。

net = trainnet(X,T,layers,"mse",options);
在此示例中,layers 指定了同一网络,但没有 RegressionOutputLayer 对象。

net = trainNetwork(data,layers,options),其中 layers 包含 RegressionOutputLayer 对象。

net = trainnet(data,layers,"mse",options);
在此示例中,layers 指定了同一网络,但没有 RegressionOutputLayer 对象。