Image processing 在一大组高分辨率图片上进行训练,并在记忆不足的情况下进行训练

Image processing 在一大组高分辨率图片上进行训练,并在记忆不足的情况下进行训练,image-processing,computer-vision,turi-create,Image Processing,Computer Vision,Turi Create,我正在尝试使用Turicreate在大约150张图片上训练一个模型,这些图片的分辨率相当高(每幅4Mb,3000X5000)。 我在跑步 model = tc.object_detector.create(train_data, max_iterations=10) 过了一会儿,我收到了“虚拟内存不足”的警告,就在我的电脑卡住之后 我想知道在这样一批图片上进行训练的最佳实践是什么 我正在使用的完整代码: import turicreate as tc data = tc.SFrame('an

我正在尝试使用Turicreate在大约150张图片上训练一个模型,这些图片的分辨率相当高(每幅4Mb,3000X5000)。 我在跑步

model = tc.object_detector.create(train_data, max_iterations=10)
过了一会儿,我收到了“虚拟内存不足”的警告,就在我的电脑卡住之后

我想知道在这样一批图片上进行训练的最佳实践是什么

我正在使用的完整代码:

import turicreate as tc
data =  tc.SFrame('annotations.sframe')
train_data, test_data = data.random_split(0.8)
model = tc.object_detector.create(train_data, max_iterations=10)
predictions = model.predict(test_data)
metrics = model.evaluate(test_data)
model.save('mymodel.model')
model.export_coreml('MyCustomObjectDetector.mlmodel')

通常,您希望减少批量大小,即一次迭代使用的训练数据的一部分有多大。显然,在Turicreate中这还不容易调整,所以看起来程序在一个历元中使用了完整的数据集。理想情况下,您希望使用较小的部分,例如32或64个图像。关于这个主题有一些讨论,显然批量大小作为一个公共参数可能会出现在未来的版本中


3000 x 5000对于这种工作来说也是相当大的。您可能希望缩小图像的尺寸,例如,使用中实现的双三次插值。根据您正在处理的图像类型,每个维度上即使是10倍也可能不会有太大的收缩。

将数据集图像的大小减小到例如(宽度:400高度:300),并将最大迭代次数增加到至少1000次