ВОЗВРАЩАЕТСЯ ошибка подтверждения режима поиска пользовательского уровня - PullRequest
0 голосов
/ 01 декабря 2018

Я реализовал пользовательский слой RETURNN ( HMM Factorization ), который работает как задумано во время обучения, но выдает ошибку подтверждения при использовании в режиме поиска.Выходные данные слоя идентичны выходу слоя softmax.

Вот конфигурация, которая использовалась: трансформатор + HMM Factorization

Это было проверено с использованием последней версииRETURNN.

Точная строка, которая терпит неудачу, является ( кодовая ссылка ):

assert fixed_seq_len is not None

Вот полный журнал ошибок (слишком большой, чтобывставьте сюда)

Вот инициализация обучения

Кто-нибудь есть какие-либо идеи, что ошибка может быть?

Спасибо!

1 Ответ

0 голосов
/ 01 декабря 2018

На самом деле это ошибка в ВОЗВРАЩЕНИИ.Я создал запрос на получение здесь , который должен это исправить, и объединил его сейчас.

Проблема была не в вашем пользовательском слое, а скорее в слое внутри вашего RecLayer, который на самом деле былполностью независимый, то есть этот:

'encoder_int': {'activation': None,
                'class': 'linear',
                'from': ['base:encoder'],
                'n_out': 1000,
                'with_bias': False}

Это зависит только от одного базового слоя ("base:encoder"), больше ничего.Таким образом, он (правильно) оптимизирует этот слой из повторяющегося цикла, потому что он независим.

Однако затем он видит, что вы обращаетесь к этому слою внутри цикла, и, поскольку это цикл с течением времени, онПредполагается, что этот цикл превышает это временное измерение "base:encoder".Затем он пытается развернуть "base:encoder" (TensorArray.unroll) по заданному уровню слоя записи, но затем не удается, потому что в это время он не знает последовательность слоя записи.

Myfix теперь выполняет более продвинутую проверку правильности этого предположения, то есть, что цикл действительно находится в одном измерении времени.Проверка немного хрупкая, и не уверен, что она работает правильно во всех случаях.Однако я создал тестовый пример, который воспроизводит вашу проблему, и теперь это исправлено.

...