如何在此类机器学习任务中修复 batch_size 和 epoch

Posted

技术标签:

【中文标题】如何在此类机器学习任务中修复 batch_size 和 epoch【英文标题】:How fix batch_size and epoch in such machine learning task 【发布时间】:2021-11-26 13:45:06 【问题描述】:

我训练了一个 ResNet50 网络。 我有一个包含 1500 张图像的数据集,我修复了 epochs = 100 和 batch_size = 16,我发现准确度从第 10 个 epoch 开始达到 0.8,并继续增加到 0.95。 现在,我为这个数据集添加图像,它变为 15 000 并且 epochs = 100 和 batch_size = 16。我观察到准确度不超过 0.6 。 我无法理解原因?

【问题讨论】:

【参考方案1】:

深度学习模型的准确性主要取决于数据集的性质和数据集中的样本数量。样本越多,您需要的时期就越多。但是,批量大小对模型训练速度的影响比对准确率的影响更大。

在您的情况下,保持 epochs 不变 (100),可以理解的是,具有 15000 个样本的数据集的准确度低于具有 1500 个样本的数据集。如果你想在更大的数据集上达到预期的精度,那么你需要训练你的模型进行更多的 epoch,比如说尝试 200 次并查看结果。

您需要记住的另一件事是如何计算准确性?是训练准确度还是使用看不见的测试集计算的准确度?这完全取决于数据集的多样性。

简而言之,为了获得更好的训练结果,您需要使用足够多的样本使您的数据集多样化,以获得通用模型。为了获得更好的准确度结果,除非您看到准确度有所提高,否则您需要继续训练您的模型足够的时期。希望这些信息对你有帮助!!!

【讨论】:

以上是关于如何在此类机器学习任务中修复 batch_size 和 epoch的主要内容,如果未能解决你的问题,请参考以下文章

CODE大全——机器学习

深度学习:batch_size和学习率 及如何调整

深度学习:batch_size和学习率 及如何调整

干货!分享 10 个用于并行和分布式机器学习任务的Python框架

干货!分享 10 个用于并行和分布式机器学习任务的Python框架

如何使用机器学习自动修复bug: 上手指南