# Класс CBestSequenceLayer

<!-- TOC -->

- [Класс CBestSequenceLayer](#класс-cbestsequencelayer)
    - [Настройки](#настройки)
    - [Обучаемые параметры](#обучаемые-параметры)
    - [Входы](#входы)
    - [Выходы](#выходы)

<!-- /TOC -->

Класс реализует слой, находящий оптимальную последовательность классов на основе значений, возвращенных [CCrfLayer](CrfLayer.md).
Для использования во время обучения в слое [CCrfLayer](CrfLayer.md) должно быть включено вычисление выхода [O_BestPrevClass](CrfLayer.md#вычисление-выхода-O_BestPrevClass).

## Настройки

Слой не имеет настроек.

## Обучаемые параметры

Слой не имеет обучаемых параметров.

## Входы

Слой имеет 2 входа:

На первый вход подаётся блоб с данными типа `int`, с оптимальными последовательностями классов. Блоб имеет размеры:

- `BatchLength` - длина последовательностей;
- `BatchWidth` - количество последовательностей в наборе;
- `Channels` - число классов;
- остальные размерности равны `1`.
1. 

На второй вход подаётся блоб с данными типа `float`, содержащий ненормализованные логарифмы вероятностей оптимальных последовательностей классов. Блоб имеет те же размеры, что и у первого входа.

## Выходы

Единственный выход содержит блоб с данными типа `int`, содержащий оптимальные последовательности классов. Блоб имеет размеры:

- `BatchLength` равен `BatchLength` входов;
- `BatchWidth` равен `BatchWidth` входов;
- остальные размерности равны `1`.
