我正在尝试使用API在我的自定义数据集上使用VGG-16作为特征提取器(paper))训练更快的RCNN。
训练参数与文章中描述的相同,除了,我只运行15k步骤并将图像大小调整为1200x1200,批量大小= 1。 训练运行良好但随着时间的推移训练变得更慢。它正在CPU和GPU之间转换。
在GPU上运行大约1秒的时间以及在CPU中运行的其他高数字(如〜20secs)的步骤我使用' top'和&nvidia-smi'为什么它在中间的CPU和GPU之间转换?我可以理解模型和日志被保存时的转变,但我不明白为什么。
PS:我正在运行只有火车脚本。我没有运行eval脚本
更新: 随着时间的推移会变得更糟 秒/步增加,从而影响检查点和日志存储的速率
它应该小于1秒/步,因为这是我开始训练前2k步的速度。我的数据集非常小(300张图片用于培训)。
答案 0 :(得分:0)
根据我的经验,输入图像的大小可能太大。当您在训练期间查看张量板时,您会发现所有重塑计算都在GPU上运行。因此,也许您可以编写一个python脚本来调整输入图像的大小而不改变宽高比,同时您可以将批量大小(可能是4或8)设置得更高一些。然后你可以更快地训练你的数据集,也可以获得相对好的结果(mAP)