regressionLayer
(不推荐)回归输出层
说明
回归层计算回归任务的半均方误差损失。
将神经网络的回归输出层以 layer
= regressionLayerRegressionOutputLayer
对象形式返回。
使用名称-值对组设置可选的 layer
= regressionLayer(Name,Value
)Name
和 ResponseNames
属性。例如,regressionLayer('Name','output')
创建一个名为 'output'
的回归层。用单引号将每个属性名称引起来。
示例
创建回归输出层
创建一个回归输出层。
创建一个名为 '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
输入参数
名称-值参数
以 Name1=Value1,...,NameN=ValueN
的形式指定可选参量对组,其中 Name
是参量名称,Value
是对应的值。名称-值参量必须出现在其他参量之后,但对各个参量对组的顺序没有要求。
如果使用的是 R2021a 之前的版本,请使用逗号分隔每个名称和值,并用引号将 Name
引起来。
示例: regressionLayer('Name','output')
创建一个名为 'output'
的回归层
Name
— 层名称
""
(默认) | 字符向量 | 字符串标量
层名称,指定为字符向量或字符串标量。对于 Layer
数组输入,trainNetwork
函数会自动为层指定名称 ""
。
RegressionOutputLayer
对象将此属性存储为字符向量。
数据类型: char
| string
ResponseNames
— 响应的名称
{}
(默认) | 字符向量元胞数组 | 字符串数组
响应的名称,指定为字符向量元胞数组或字符串数组。在训练时,软件根据训练数据自动设置响应名称。默认值为 {}
。
数据类型: cell
输出参量
layer
— 回归输出层
RegressionOutputLayer
对象
回归输出层,以 RegressionOutputLayer
对象形式返回。
详细信息
回归输出层
回归层计算回归任务的半均方误差损失。对于典型的回归问题,回归层必须位于最终全连接层之后。
对于单个观测值,均方误差由下式给出:
其中,R 是响应的数目,ti 是目标输出,yi 是网络对响应 i 的预测。
对于图像和“序列到单个”回归网络,回归层的损失函数是预测响应的半均方误差,未由 R 进行归一化:
对于图像到图像回归网络,回归层的损失函数是每个像素的预测响应的半均方误差,未由 R 进行归一化:
其中 H、W 和 C 分别表示输出的高度、宽度和通道数,p 对 t 和 y 的每个元素(像素)进行线性索引。
对于“序列到序列”回归网络,回归层的损失函数是每个时间步的预测响应的半均方误差,未由 R 进行归一化:
其中 S 是序列长度。
在训练时,软件计算小批量中各观测值的均值损失。
扩展功能
C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。
用法说明和限制:
代码生成器表示由区域设置确定的 8 位 ASCII 代码集中的字符。因此,在类名称、层名称、层描述或网络名称中使用非 ASCII 字符可能导致错误。有关详细信息,请参阅代码生成中的字符编码 (MATLAB Coder)。
GPU 代码生成
使用 GPU Coder™ 为 NVIDIA® GPU 生成 CUDA® 代码。
用法说明和限制:
要使用 GPU Coder™ 生成 CUDA® 或 C++ 代码,必须先构造并训练深度神经网络。一旦网络经过训练和评估,您就可以配置代码生成器来生成代码,并在使用 NVIDIA® 或 ARM® GPU 处理器的平台上部署卷积神经网络。有关详细信息,请参阅Deep Learning with GPU Coder (GPU Coder)。
对于此层,您可以生成利用 NVIDIA CUDA 深度神经网络库 (cuDNN)、NVIDIA TensorRT™ 高性能推理库或用于 Mali GPU 的 ARM
Compute Library
的代码。代码生成器表示由区域设置确定的 8 位 ASCII 代码集中的字符。因此,在类名称、层名称、层描述或网络名称中使用非 ASCII 字符可能导致错误。有关详细信息,请参阅代码生成中的字符编码 (MATLAB Coder)。
版本历史记录
在 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 对象。 |
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- 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)