Невозможность воспроизвести одинаковые результаты при многократных прогонах для модели LSTM в тензорном потоке - PullRequest
0 голосов
/ 22 января 2019

Я обучал сеть LSTM тензорному потоку.Моя модель имеет следующую конфигурацию:

  • time_steps = 1700
  • Размер ячейки: 120
  • Количество входных функций x = 512.
  • Пакетная обработкаразмер: 34
  • Оптимизатор: AdamOptimizer со скоростью обучения = 0,01
  • Количество эпох = 20

У меня GTX 1080 Ti.И моя версия тензорного потока - 1.8.

Кроме того, я установил случайное начальное число через tf.set_random_seed(mseed), и я установил случайное начальное число для инициализатора каждой обучаемой переменной, чтобы я мог воспроизвести те же результаты после нескольких прогонов.

После многократного обучения модели, каждый раз в течение 20 эпох, я обнаружил, что достигал одинаковых точных потерь для первых нескольких эпох (7, 8 или 9) «во время каждого запуска», а затемпотери начинают различаться.Мне было интересно, почему это происходит;и, если возможно, как кто-то может полностью воспроизвести результаты любой модели.

Кроме того, в моем случае я передаю все данные в течение каждой итерацииТо есть я делаю обратное распространение по времени (BPTT), а не усеченное BPTT.Другими словами, у меня всего 2 итерации, что также равно количеству эпох.

На следующем рисунке показана моя проблема.Обратите внимание, что каждый ряд соответствует одной эпохе.

enter image description here

Обратите внимание, что каждый столбец соответствует отдельному прогону.(Я включил только 2 колонки / прогоны), чтобы продемонстрировать свою точку зрения.

Наконец, заменив входные элементы новыми элементами размеров 100, я получу лучшие результаты, как показано на следующем рисунке:

enter image description here

Поэтому я не уверен, является ли это аппаратной проблемой или нет?

Любая помощь очень ценится !!

Ответы [ 2 ]

0 голосов
/ 22 января 2019

Насколько мне известно, как вы могли бы попытаться, tf.set_random_seed(seed=1) или seed равно любому другому целому числу, может быть возможным решением.

0 голосов
/ 22 января 2019

Вероятная проблема, при условии, что все, что вы сделали, правильная, это Адам не воспроизводится , так что это может быть проблемой.

Но есть и другие потенциальные источники ошибок: завершение вашего графика и установка его начального числа и начального уровня работы

Надеюсь, это поможет!Трудно быть уверенным, что все, что вы сделали, правильно без кода, но кто знает, как долго ваш код может быть

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