regressionLayer
回归输出层
说明
回归层计算回归任务的半均方误差损失。
将神经网络的回归输出层以 layer
= regressionLayerRegressionOutputLayer
对象形式返回。
使用 predict
预测训练回归网络的响应。将响应归一化通常有助于稳定和加速神经网络的回归训练。有关详细信息,请参阅针对回归训练卷积神经网络。
使用名称-值对组设置可选的 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
数组输入,trainnet
、trainNetwork
、assembleNetwork
、layerGraph
和 dlnetwork
函数会自动为层指定名称 ""
。
regressionLayer
对象将此属性存储为字符向量。
数据类型: 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 中推出
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)