Я обучал сеть 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 итерации, что также равно количеству эпох.
На следующем рисунке показана моя проблема.Обратите внимание, что каждый ряд соответствует одной эпохе.
Обратите внимание, что каждый столбец соответствует отдельному прогону.(Я включил только 2 колонки / прогоны), чтобы продемонстрировать свою точку зрения.
Наконец, заменив входные элементы новыми элементами размеров 100, я получу лучшие результаты, как показано на следующем рисунке:
Поэтому я не уверен, является ли это аппаратной проблемой или нет?
Любая помощь очень ценится !!