我看过一些在Keras中实现GAN的代码/教程(教程:1和2)。
两个都按以下方式进行批量培训:
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的批次。为什么在此代码中,它们对于每个时期只对单个批次进行训练?抱歉,这是一个基本问题。我是机器学习的新手。
答案 0 :(得分:1)
当您执行GAN时,正常的神经网络训练几乎没有什么改变。
我不知道他们为什么将此更新称为一个纪元,我想您可能会不同意命名。但是请记住,固定训练数据后,时期和批次具有意义。在这种情况下,它不是,所以也许他们称其为epoch是因为他们缺少更好的词。