Я пытаюсь сохранить модель GAN, чтобы продолжить обучение позже.
Обычно я сохраняю дискриминатор и генератор отдельно после обучения l oop с помощью следующих команд:
discriminator.save("discriminatorTrained.h5")
generator.save("generatorTrained.h5")
Затем, когда я хочу продолжить обучение, я загружаю их так:
# Load Discriminator and Generator
discriminator = load_model('discriminatorTrained.h5')
generator = load_model('generatorTrained.h5')
discriminator.trainable = False
И затем я создаю новый GAN с загруженным дискриминатором и генератором, как это:
#Make new GAN from trained discriminator and generator
gan_input = Input(shape=(noise_dim,))
fake_image = generator(gan_input)
gan_output = discriminator(fake_image)
gan = Model(gan_input, gan_output)
gan.compile(loss='binary_crossentropy', optimizer=optimizer)
И затем запустите тот же обучающий скрипт, что и я с самого начала.
Я не получаю никаких сообщений об ошибках, и, похоже, это работает, если сравнивать результаты, например, сохранять и загрузка и продолжение обучения в 10 раз, кажется, дает менее хорошие результаты от генератора, чем если бы я просто запустил одну тренировку в течение 10 эпох.
Итак, я подозреваю, что я могу что-то здесь упустить, теряется ли некоторая обучающая информация в этом процессе, возможно, при воссоздании модели GAN?