что означает input_length в K.ctc_batch_cost () - PullRequest
1 голос
/ 14 марта 2019

Я загрузил код для ocr, используя Keras, который применил сеть CRNN и использовал потерю CTC в качестве функции потери.Тем не менее, я действительно плохо знаком с потерей CTC и просто имею проблемы с использованием K.ctc_batch_cost(), особенно со значением input_length.В документе keras

Аргументы tf.keras.backend.ctc_batch_cost (y_true, y_pred, input_length, label_length)

  1. y_true: тензор (образцы, max_string_length), содержащая метки истинности.
  2. y_pred: тензор (samples, time_steps, num_categories), содержащий прогноз или вывод softmax.
  3. input_length: тензор (samples, 1), содержащийдлина последовательности для каждого элемента пакета в y_pred.
  4. label_length: tenor (samples, 1), содержащая длину последовательности для каждого элемента пакета в y_true.

    Однако моя проблема заключается в том, чтосмысл input_length?это размер выходного LSTM?

1 Ответ

0 голосов
/ 14 марта 2019

Потери CTC для одного примера рассчитываются для двумерного массива (T, C).C должно быть равно числу символов + 1 (пустые символы).C содержит распределение вероятностей символов на отметках времени.T будет количество отметок времени.

T должен иметь длину 2 * max_string_length.Все возможные кодировки y_true с длиной T будут использоваться при расчете отрицательных лог-потерь.

Обычно это форма вывода предыдущего уровня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...