首页 文章

Keras GAN批量训练

提问于
浏览
3

我已经查看了一些代码/教程(教程:12),用于在Keras中实现GAN .

两者都进行批量培训如下:

for epoch in range(epochs):
    # ---------------------
    # Train Discriminator
    # ---------------------
    # Select a random batch of images

    # Generate a batch of new images

    # Train the discriminator

    # ---------------------
    # Train Generator
    # ---------------------

在上面的代码中(取自(2)中的第92行),它们循环遍历所有时期,但是对于每个时期,仅在一个批次上进行训练 . 据我所知,对于每个时代,我们应该进行多批次训练;这样我们就可以浏览整个数据集了 . 例如,如果我们有100个样本且批量大小为10,那么对于每个时期,我们训练10个批次大小为10.为什么在此代码中,它们仅针对每个时期在单个批次上进行训练?对不起,如果这是一个基本问题;我对机器学习很陌生 .

1 回答

  • 1

    当你做GAN时,很少有东西会从正常的神经网络训练中改变 .

    • 您的输入数据随着时间的推移而发展 . 来自Generator网络的人工图像在每次更新网络中的权重时都会发生变化 .

    • 您必须同时训练两个网络 . 如果您随后更新生成器,那么在大量数据上训练鉴别器是没有意义的 . 因为这会改变鉴别器学习的数据分布 . 因此,您可能希望经常更新两个网络 . 因此,最好每批次更新两个网络 .

    我不知道他们为什么称这个更新为一个时代,我想你可能不同意这个命名 . 但请记住,在修复训练数据时,时代和批次具有意义 . 在这种情况下它不是,所以也许他们只是称之为时代,因为他们没有更好的词 .

相关问题