продолжение ранее: Почему моя модель работает с `tf.GradientTape ()`, но не работает при использовании `keras.models.Model.fit ()`
I'm работаю над репликацией модели передачи в перцептивном стиле, как показано ниже: ![enter image description here](https://i.stack.imgur.com/MMIQa.png)
Наконец-то у меня получается обучение модели, как и ожидалось, на 1000 изображениях из набора данных COCO2014. Но затем я попытался запустить 2 эпохи всего набора данных, с 20695 пакетами на эпоху (согласно исследовательской работе). Он начинает учиться очень быстро, но после примерно 3700 шагов он просто загадочно терпит неудачу. (сохранение 1 сгенерированного изображения каждые 100 пакетов, самое последнее слева)
![enter image description here](https://i.stack.imgur.com/7TVD7.jpg)
Прогнозы, которые я делаю с сохраненными контрольными точками, показывают аналогичные результаты:
![enter image description here](https://i.stack.imgur.com/eHetX.png)
глядя как потери вблизи точки отказа, я вижу:
# output_1 is content_loss
# output_2-6 are gram matrix style_loss values
[batch:3400/20695] - loss: 953168.7218 - output_1_loss: 123929.1953 - output_2_loss: 55090.2109 - output_3_loss: 168500.2344 - output_4_loss: 139039.1250 - output_5_loss: 355890.0312 - output_6_loss: 110718.5781
[batch:3500/20695] - loss: 935344.0219 - output_1_loss: 124042.5938 - output_2_loss: 53807.3516 - output_3_loss: 164373.4844 - output_4_loss: 135753.5938 - output_5_loss: 348085.6250 - output_6_loss: 109280.0469
[batch:3600/20695] - loss: 918017.2146 - output_1_loss: 124055.9922 - output_2_loss: 52535.9062 - output_3_loss: 160401.0469 - output_4_loss: 132601.0156 - output_5_loss: 340561.5938 - output_6_loss: 107860.3047
[batch:3700/20695] - loss: 901454.0553 - output_1_loss: 124096.1328 - output_2_loss: 51326.8672 - output_3_loss: 156607.0312 - output_4_loss: 129584.2578 - output_5_loss: 333345.5312 - output_6_loss: 106493.0781
[batch:3750/20695] - loss: 893397.4667 - output_1_loss: 124108.4531 - output_2_loss: 50735.1992 - output_3_loss: 154768.8281 - output_4_loss: 128128.1953 - output_5_loss: 329850.2188 - output_6_loss: 105805.6250
# total loss increases after batch=3750. WHY???
[batch:3800/20695] - loss: 1044768.7239 - output_1_loss: 123897.2188 - output_2_loss: 101063.2812 - output_3_loss: 200778.2812 - output_4_loss: 141584.6875 - output_5_loss: 370377.5000 - output_6_loss: 107066.7812
[batch:3900/20695] - loss: 1479362.4735 - output_1_loss: 123050.9766 - output_2_loss: 200276.5156 - output_3_loss: 356414.2188 - output_4_loss: 185420.0781 - output_5_loss: 502506.7500 - output_6_loss: 111692.8750
Я не могу начать думать о том, как отладить эту проблему. Как только она «заработает», должна ли модель продолжать работать? Это похоже на переполнение буфера, но я не знаю, как его найти. Любые идеи?
полный блокнот / репозиторий Colab можно найти здесь: https://colab.research.google.com/github/mixuala/fast_neural_style_pytorch/blob/master/notebook/%5BSO%5D_Coco14_FastStyleTransfer.ipynb