我训练了一个对象检测API模型(使用动物园的COCO / Inception v2的Mask RCNN ),具有相同的配置,TensorFlow和模型版本,以及相同数量的步骤的相同(自定义)数据集。
在本地机器(1080TI上的tensorflow-gpu)上,我使用了object_object/Train.py,而在云上,我使用了调用object_detection.train模块的google ml-engine作业。两者使用相同的学习率。
云运行使用了5个工作进程,而本地运行只有1个GPU。它们都被设置为批处理大小为1。
为什么本地训练的模型的准确性要低得多?本地训练的模型往往比云训练的模型有更多的假阳性。
更重要的是,我可以做些什么来使我在本地机器上的训练达到云的水平?
发布于 2018-08-23 13:57:22
看起来你在云上使用了5个工作者,而你在本地只使用了一个GPU?那么,批处理大小就不同了。
有效批处理大小是您在命令行上设置的批处理大小除以工作进程数。而且看起来更小的批量在你的模型上工作得很好。因此,要获得更高的本地训练精度,请将批量大小减少到值的1/5。
此外,如果差异如此显著,您可以明显地看出云模型更好,那么也许您应该进行超参数调优,以找到更好的参数。在BASIC_GPU设置上执行此操作,以便云上的相同设置也将在本地工作。
https://stackoverflow.com/questions/51976733
复制相似问题