我想训练一个MobileNet来识别自定义图像类别。但是我不知道如何告诉MobileNet应该使用多少提供的数据作为训练数据。
当你使用retrain脚本时:
我可以设置验证和测试的百分比。最大的问题是,这些百分比是如何计算的?
程序是使用100%的数据并将其分成75%的训练数据,10%的验证数据,15%的测试数据吗?还是MobileNet事先将数据分成70%的训练数据和30%的测试数据,然后从70%中取出10%作为验证数据?
我不明白MobileNet内部是如何工作的?我可以将训练数据的百分比调整到85%吗?
谢谢
回答:
根据Tensorflow关于MobileNet的文档,–testing_percentage和–validation_percentage参数控制以下内容:
通常的分割方式是将80%的图像放入主要训练集,保留10%的图像在训练过程中频繁运行以进行验证,然后再有10%的图像作为测试集较少使用,以预测分类器在现实世界的表现。这些比例可以通过–testing_percentage和–validation_percentage标志来控制。
所以我认为使用你当前的参数(–testing_percentage=15, –validation_percentage=10),你将有75%的数据用于主要训练集,15%用于测试,10%用于验证,正如你所建议的。
如果你想将训练数据的百分比从75%增加到85%,你可以通过设置:
–testing_percentage=10 和 –validation_percentage=5
或者
–testing_percentage=5 和 –validation_percentage=10
或者任何其他组合,使85%的数据用于训练。
即:训练百分比 = 100% – 测试百分比 – 验证百分比
然而,你需要小心不要将测试/验证百分比设置得太低,否则你的准确性得分可能没有足够的测试数据来验证你的预测准确性得分本身是否准确。
希望这对你有帮助。