主要内容

classificationLayer

分类输出层

描述

分类层计算具有互斥类的分类和加权分类任务的交叉熵损失。

该层从前一层的输出大小推断类的数量。例如,指定类的数量K在网络中,可以包含一个输出大小的全连接层K在分类层之前有一个软最大层。

= classificationLayer创建一个分类层。

例子

= classificationLayer (名称,值设置可选的的名字ClassWeights,属性使用一个或多个名称-值对。例如,classificationLayer(“名字”,“输出”)创建名称为的分类层“输出”

例子

全部折叠

用名称创建一个分类层“输出”

层= classificationLayer(“名字”“输出”
层= ClassificationOutputLayer属性:名称:'output'类:'auto' ClassWeights: 'none' OutputSize: 'auto'超参数LossFunction: 'crossentropyex'

类中包含分类输出层数组中。

层= [...imageInputLayer([28 28 1]) convolution2dLayer(5,20) reluLayer maxPooling2dLayer(2,“步”,2) fullyConnectedLayer(10) softmaxLayer classificationLayer]
2 " Convolution 20 5x5 convolutions with stride [1 1] and padding [0 0 0 0 0] 3 " ReLU ReLU 4 " Max Pooling 2x2 Max Pooling with stride [2 2] and padding [0 0 0 0 0] 5 " Fully Connected 10 Fully Connected Layer 6 " Softmax Softmax 7 " Classification Output crossentropyex

为“猫”、“狗”和“鱼”三个类创建一个加权分类层,权重分别为0.7、0.2和0.1。

类= [“猫”“狗”“鱼”];classWeights = [0.7 0.2 0.1];层= classificationLayer(...“类”、类...“ClassWeights”classWeights)
层= ClassificationOutputLayer与属性:名称:"类:[猫狗鱼]ClassWeights: [3x1 double] OutputSize: 3超参数LossFunction: 'crossentropyex'

在layer数组中包含一个加权分类输出层。

numClasses = nummel(类);层= [...imageInputLayer([28 28 1]) convolution2dLayer(5,20) reluLayer maxPooling2dLayer(2,“步”,2) fullyConnectedLayer(numClasses)“类”、类“ClassWeights”classWeights))
1 "图像输入28x28x1图像与'zerocenter'归一化2 "卷积20 5x5卷积与stride[1 1]和填充[0 0 0 0 0]3 " ReLU ReLU 4 "最大池化2x2最大池化与stride[2 2]和填充[0 0 0 0 0]5 "全连接3全连接层6 " Softmax Softmax 7 "分类输出类加权crossentropyex与'cat'和2个其他类

输入参数

全部折叠

名称-值参数

的可选逗号分隔对名称,值参数。的名字参数名称和价值对应的值。的名字必须出现在引号内。您可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:classificationLayer(“名字”,“输出”)创建名称为的分类层“输出”

层名,指定为字符向量或字符串标量。为数组输入时,trainNetworkassembleNetworklayerGraph,dlnetwork函数自动为层分配名称的名字设置为

数据类型:字符|字符串

加权交叉熵损失的类权重,指定为正数或向量“没有”

对于向量类的权重,每个元素表示对象中相应类的权重财产。若要指定类权重向量,还必须指定使用的类“类”

如果ClassWeights属性是“没有”,则该层应用未加权交叉熵损失。

类的输出层,指定为分类向量、字符串数组、单元格字符向量数组或“汽车”.如果“汽车”,然后软件在训练时间自动设置课程。如果指定字符向量的字符串数组或单元格数组str,则软件将输出层的类设置为分类(str, str)

数据类型:字符|分类|字符串|细胞

输出参数

全部折叠

分类层,返回为ClassificationOutputLayer对象。

有关连接层以构建卷积神经网络架构的信息,请参见

更多关于

全部折叠

分类层

分类层计算具有互斥类的分类和加权分类任务的交叉熵损失。

对于典型的分类网络,分类层通常遵循软最大层。在分类层,trainNetwork从softmax函数中获取值,并将每个输入分配给K互斥类使用交叉熵函数为1 of-K编码方案[1]

损失 1 N n 1 N 1 K w t n ln y n

在哪里N是样本数,K是类的数量, w 重量是按等级计算的吗 t n 该指标是否为n该样品属于Th类,和 y n 输出是样品吗n为类,在本例中是softmax函数的值。换句话说, y n 网络关联的概率是n带类的Th输入

参考文献

[1]毕晓普c.m.模式识别与机器学习.施普林格,纽约,纽约,2006。

扩展功能

C/ c++代码生成
使用MATLAB®Coder™生成C和c++代码。

GPU代码生成
使用GPU Coder™为NVIDIA®GPU生成CUDA®代码。

在R2016a中引入