InvalidArgumentError: Несоответствие между текущим графиком и графиком с контрольной точки - PullRequest
0 голосов
/ 24 октября 2018

Так что я в основном использую эту реализацию преобразователя для моего проекта: https://github.com/Kyubyong/transformer.Он отлично работает с немецко-английским переводом, для которого он был изначально написан, и я изменил скрипт Python для обработки, чтобы создавать файлы словаря для языков, которые я хочу перевести.Кажется, это работает нормально.

Однако, когда дело доходит до обучения, я получаю следующую ошибку:

InvalidArgumentError (см. Выше для отслеживания): восстановление из контрольной точки не удалось.Скорее всего, это связано с несоответствием между текущим графиком и графиком с контрольной точки.Пожалуйста, убедитесь, что вы не изменили ожидаемый график на основе контрольной точки.Исходная ошибка:

Назначение требует соответствия форм обоих тензоров.lhs shape = [9796,512] rhs shape = [9786,512] [[{{node save / Assign_412}} = Назначить [T = DT_FLOAT, _class = ["loc: @ encoder / enc_embed / lookup_table"], use_locking =true, validate_shape = true, _device = "/ job: localhost / replica: 0 / task: 0 / device: CPU: 0"] (кодировщик / enc_embed / lookup_table / Adam_1, save / RestoreV2: 412)]]

Теперь я понятия не имею, почему я получаю вышеуказанную ошибку.Я также вернулся к исходному коду для перевода с немецкого на английский, и теперь я получаю ту же ошибку (за исключением того, что формы тензоров lhs и rhs отличаются, конечно), когда до этого он работал!

Любые идеи о том, почему это может происходить?

Заранее спасибо

РЕДАКТИРОВАТЬ: Это конкретный файл здесь, train.py, когда он запускается:https://github.com/Kyubyong/transformer/blob/master/train.py Ничто не было изменено, кроме того факта, что вокаб, загруженный для de и en, по-разному (на самом деле это вокаб-файлы с одиночными буквами в качестве слов).Однако, как я уже говорил, даже возвращаясь к распространенному рабочему примеру, я получаю одинаковую ошибку с разными размерами lhs и rhs.

Ответы [ 2 ]

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

Я получаю похожую ошибку, в моем случае кажется, что выходные данные предыдущих неудачных заданий оставались в выходном каталоге, и были некоторые несовместимости при сохранении / восстановлении контрольных точек нового задания, поэтому я просто вычистил его вывод dir и тогда новое задание заработало корректно.

0 голосов
/ 31 октября 2018

Большое число почти наверняка соответствует размеру вашего словарного запаса.Исходная матрица будет иметь размер [vocab_size, hidden_dim].Таким образом, изменяя размер вашего словаря, вы ломаете вещи.

Предположительно, решение состоит в том, чтобы просто убрать все свои контрольные точки, чтобы вы смотрели только на модели, обученные с нужным вам словарным запасом.

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