Использую алгоритм и архитектуру из статьи, на свою дату. Происходит взрыв градиентов и отсюда взрыв weights.
В целом там FC 4 слоя. Тренируются поочередно, сначала только первый, потом первый и второй и т.д.
Во время тренировки 4-ого слоя, в первом же эпоке где-то на 41-ом батче из 551.
Первые 3 слоя выглядят норм, в последнем слое в степени 24, 27. Последний и в енкодере и в декодере.
В архитектуре используется leaky_ReLU после каждого слоя энкодера кроме последнего, и после каждого слоя декодера кроме первого, архитектура as is в статье.
в архитектуре изначально нет bn. Не знаю по каким соображениям.
https://github.com/shahsohil/DCC/blob/master/pytorch/SDAE.pyне хотел сильно лезть в сетку, так как она из статьи, в которой в таком виде была проверена на 10+ датасетах.
Какие самые безобидные (без изменений или минимальные) методы есть:
1. есть работающий бн
2. видел, что можно попробовать уменьшить размер батча. (сомневаюсь в данном раскладе что это что то изменит)
3. clip_grad_norm
4. L2
как посоветуете в данном случае поступить ?
Проверял с бн, проблему решает, но сколько он будет тренироваться при таком раскладе я не знаю.