ClassificationOutputLayer

Описание

Слой классификации вычисляет потерю перекрестной энтропии для классификации и взвешенных задач классификации со взаимоисключающими классами.

Создание

Создайте использование слоя классификации classificationLayer.

Свойства

развернуть все

Классификация Выход

Веса класса для взвешенной потери перекрестной энтропии в виде вектора из положительных чисел или 'none'.

Для векторных весов класса каждый элемент представляет вес для соответствующего класса в Classes свойство. Чтобы задать вектор из весов класса, необходимо также задать классы с помощью 'Classes'.

Если ClassWeights свойством является 'none', затем слой применяет невзвешенную потерю перекрестной энтропии.

Классы выходного слоя в виде категориального вектора, массива строк, массива ячеек из символьных векторов или 'auto'. Если Classes 'auto', затем программное обеспечение автоматически устанавливает классы в учебное время. Если вы задаете массив строк или массив ячеек из символьных векторов str, затем программное обеспечение устанавливает классы выходного слоя к categorical(str,str).

Типы данных: char | categorical | string | cell

Это свойство доступно только для чтения.

Размер выхода в виде положительного целого числа. Это значение является количеством меток в данных. Перед обучением выходной размер установлен в 'auto'.

Это свойство доступно только для чтения.

Функция потерь для обучения в виде 'crossentropyex', который выдерживает за Перекрестную Энтропийную Функцию для k Взаимоисключающие Классы.

Слой

Имя слоя в виде вектора символов или строкового скаляра. Чтобы включать слой в график слоев, необходимо задать непустое, уникальное имя слоя. Если вы обучаете серийную сеть со слоем и Name установлен в '', затем программное обеспечение автоматически присваивает имя к слою в учебное время.

Типы данных: char | string

Количество входных параметров слоя. Этот слой принимает один вход только.

Типы данных: double

Введите имена слоя. Этот слой принимает один вход только.

Типы данных: cell

Количество выходных параметров слоя. Слой не имеет никаких выходных параметров.

Типы данных: double

Выведите имена слоя. Слой не имеет никаких выходных параметров.

Типы данных: cell

Примеры

свернуть все

Создайте слой классификации с именем 'output'.

layer = classificationLayer('Name','output')
layer = 
  ClassificationOutputLayer with properties:

            Name: 'output'
         Classes: 'auto'
    ClassWeights: 'none'
      OutputSize: 'auto'

   Hyperparameters
    LossFunction: 'crossentropyex'

Включайте классификацию выходной слой в Layer массив.

layers = [ ...
    imageInputLayer([28 28 1])
    convolution2dLayer(5,20)
    reluLayer
    maxPooling2dLayer(2,'Stride',2)
    fullyConnectedLayer(10)
    softmaxLayer
    classificationLayer]
layers = 
  7x1 Layer array with layers:

     1   ''   Image Input             28x28x1 images with 'zerocenter' normalization
     2   ''   Convolution             20 5x5 convolutions with stride [1  1] and padding [0  0  0  0]
     3   ''   ReLU                    ReLU
     4   ''   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
     7   ''   Classification Output   crossentropyex

Создайте взвешенный слой классификации для трех классов с именами "кошка", "собака" и "рыба", с весами 0.7, 0.2, и 0.1, соответственно.

classes = ["cat" "dog" "fish"];
classWeights = [0.7 0.2 0.1];

layer = classificationLayer( ...
    'Classes',classes, ...
    'ClassWeights',classWeights)
layer = 
  ClassificationOutputLayer with properties:

            Name: ''
         Classes: [cat    dog    fish]
    ClassWeights: [3x1 double]
      OutputSize: 3

   Hyperparameters
    LossFunction: 'crossentropyex'

Включайте взвешенную классификацию выходной слой в массив Слоя.

numClasses = numel(classes);

layers = [ ...
    imageInputLayer([28 28 1])
    convolution2dLayer(5,20)
    reluLayer
    maxPooling2dLayer(2,'Stride',2)
    fullyConnectedLayer(numClasses)
    softmaxLayer
    classificationLayer('Classes',classes,'ClassWeights',classWeights)]
layers = 
  7x1 Layer array with layers:

     1   ''   Image Input             28x28x1 images with 'zerocenter' normalization
     2   ''   Convolution             20 5x5 convolutions with stride [1  1] and padding [0  0  0  0]
     3   ''   ReLU                    ReLU
     4   ''   Max Pooling             2x2 max pooling with stride [2  2] and padding [0  0  0  0]
     5   ''   Fully Connected         3 fully connected layer
     6   ''   Softmax                 softmax
     7   ''   Classification Output   Class weighted crossentropyex with 'cat' and 2 other classes

Больше о

развернуть все

Вопросы совместимости

развернуть все

Не рекомендуемый запуск в R2018b

Ссылки

[1] Епископ, C. M. Распознавание образов и машинное обучение. Спрингер, Нью-Йорк, Нью-Йорк, 2006.

Введенный в R2016a