keras fit_generator中的nb_epoch,samples_per_epoch和nb_val_samples的标准?

时间:2017-03-11 10:40:18

标签: python tensorflow keras conv-neural-network

我创建了一个简单的猫狗图像分类(卷积神经网络)。每个班级有7,000个培训数据,每个班级有5,500个验证数据。

我的问题是我的系统没有完成所有纪元。如果有人能够解释选择 nb_epoch,samples_per_epoch和nb_val_samples 值的比例或标准,以获得最大限度的训练和验证数据,我将非常感激。

以下是我的代码:

showDialog

1 个答案:

答案 0 :(得分:7)

samples_per_epoch 通常设置为:

samples_per_epoch=train_generator.nb_samples

通过这种方式,您可以确保每个时代都能看到一些等于训练集大小的样本。这意味着您将在每个时代看到所有的训练样本。

nb_epoch 非常适合您。它确定您对samples_per_epoch定义的数字进行迭代的次数。

举个例子,在你的代码中,你的模型正在“看到”(nb_epoch * samples_per_epoch)图像,在这种情况下是65000张图像。

nb_val_samples 确定在完成每个纪元后评估模型的验证样本数量。这取决于你。通常的事情是设置:

nb_val_samples=validation_generator.nb_samples

为了在完整的验证集上评估您的模型。

batch_size 确定您的gpu(或cpu)同时多少图片。哑巴规则是设置你的gpu的memmory允许的最大batch_size。理想的batch_size是现在研究的活跃领域,但通常更大的batch_size将更好地工作。