softmaxLayer
Softmax 层
说明
softmax 层对输入应用 softmax 函数。
创建对象
属性
NumInputs
— 输入的数目
1
(默认)
此 属性 为只读。
层的输入数,返回为 1
。此层只接受一个输入。
数据类型: double
InputNames
— 输入名称
{'in'}
(默认)
此 属性 为只读。
输入名称,返回为 {'in'}
。此层只接受一个输入。
数据类型: cell
NumOutputs
— 输出的数目
1
(默认)
此 属性 为只读。
层的输出数,返回为 1
。此层只有一个输出。
数据类型: double
OutputNames
— 输出名称
{'out'}
(默认)
此 属性 为只读。
输出名称,返回为 {'out'}
。此层只有一个输出。
数据类型: cell
示例
创建 softmax 层
创建一个名为 "sm1"
的 softmax 层。
layer = softmaxLayer(Name="sm1")
layer = SoftmaxLayer with properties: Name: 'sm1'
在 Layer
数组中包含一个 softmax 层。
layers = [ ...
imageInputLayer([28 28 1])
convolution2dLayer(5,20)
reluLayer
maxPooling2dLayer(2,Stride=2)
fullyConnectedLayer(10)
softmaxLayer]
layers = 6x1 Layer array with layers: 1 '' Image Input 28x28x1 images with 'zerocenter' normalization 2 '' 2-D Convolution 20 5x5 convolutions with stride [1 1] and padding [0 0 0 0] 3 '' ReLU ReLU 4 '' 2-D Max Pooling 2x2 max pooling with stride [2 2] and padding [0 0 0 0] 5 '' Fully Connected 10 fully connected layer 6 '' Softmax softmax
算法
Softmax 层
softmax 层对输入应用 softmax 函数。
对于分类问题,通常在最终全连接层后跟 softmax 层,然后跟分类层。
输出单元激活函数是 softmax 函数:
其中 并且 。
对于多类分类问题,softmax 函数是最后一个全连接层后的输出单元激活函数:
其中 且 。此外,,其中 是给定类 r 的样本的条件概率, 是类先验概率。
softmax 函数也称为归一化指数,可视为逻辑 sigmoid 函数的多类泛化 [1]。
层输入和输出格式
层数组或层图中的层将数据作为格式化的 dlarray
对象传递给后续层。dlarray
对象的格式是字符串,其中每个字符描述数据的对应维度。格式由以下一个或多个字符组成:
"S"
- 空间"C"
- 通道"B"
- 批量"T"
- 时间"U"
- 未指定
例如,您可以将以四维数组表示的二维图像数据(其中前两个维度对应于图像的空间维度,第三个维度对应于图像的通道,第四个维度对应于批量维度)的格式描述为 "SSCB"
(空间、空间、通道、批量)。
您可以在自动微分工作流中与这些 dlarray
对象进行交互,例如开发自定义层、使用 functionLayer
对象或对 dlnetwork
对象使用 forward
和 predict
函数的工作流。
下表显示 SoftmaxLayer
对象支持的输入格式以及对应的输出格式。如果软件将层的输出传递给不从 nnet.layer.Formattable
类继承的自定义层,或传递给 Formattable
属性设置为 0
(false
) 的 FunctionLayer
对象,则该层会接收到未格式化的 dlarray
对象,其维度顺序对应于下表中的格式。此处列出的格式只是部分格式。该层可能支持其他格式,例如具有附加 "S"
(空间)或 "U"
(未指定)维度的格式。
输入格式 | 输出格式 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
在 dlnetwork
对象中,SoftmaxLayer
对象还支持以下输入和输出格式组合。
输入格式 | 输出格式 |
---|---|
|
|
|
|
|
|
|
|
参考
[1] Bishop, C. M. Pattern Recognition and Machine Learning. Springer, New York, NY, 2006.
扩展功能
C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。
GPU 代码生成
使用 GPU Coder™ 为 NVIDIA® GPU 生成 CUDA® 代码。
版本历史记录
在 R2016a 中推出
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)