Я больше знаком с обучением графа тензорного потока, чем с Keras, но я пробую Keras здесь.
При создании GAN генератор должен быть оптимизирован против другой потери, чем дискриминатор (противоположная потеря).В базовом тензорном потоке это достаточно просто реализовать, используя либо 2 оптимизатора, либо вызывая optimizer.compute_gradients(...)
и optimizer.apply_gradients(...)
отдельно с соответствующей группой весов.
В Керасе я не вижу, что я могу достичьиз этих.В реализациях, таких как Keras-GAN , оказывается, что обучение генератора и дискриминатора разделено на отдельные модели и затем обучается независимо от партии к партии.Это означает, что для эффективного обновления требуется гораздо больше проходов, чем для реализации базового тензорного потока с двумя оптимизаторами, работающими за один проход.
Есть ли способ реализовать оптимизатор для сетей GAN, чтобы и генератор, и дискриминатор могли получитьтренировался за один проход в Керасе?
TF 1.14