首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Turi造成内存过度使用而没有进展

Turi造成内存过度使用而没有进展
EN

Stack Overflow用户
提问于 2018-03-28 09:58:06
回答 1查看 322关注 0票数 0

我一直试图使用Turi创建一个简单的Core ML模型,但是程序在迭代之后停止了。我有一个名为“RenderedImages”的文件夹,其中包含有标签名称和所有相关图像的文件夹。

守则:

代码语言:javascript
复制
import turicreate as tc

print("Processing images for training...")            
# load the images
labels = list(poses)
def get_label(path, labels=labels):  
    for label in labels:  
        if label in path:  
            return label

data = tc.image_analysis.load_images('RenderedImages', with_path = True)
data['label'] = data['path'].apply(get_label)
print(data.groupby('label',[tc.aggregate.COUNT]))

# save the data
sFramePath = 'Data.sframe'
data.save(sFramePath)
data.explore()

#Train the model

print("Training model..") 
# load the data
data = tc.SFrame(sFramePath)
train_data, test_data = data.random_split(0.8)
model = tc.image_classifier.create(
    train_data,
    target='label',
    model='squeezenet_v1.1',
    max_iterations=500)
print("ENDED")
model.save('MyModel.model')
model.export_coreml('Data.mlmodel')

predictions = model.predict(test_data)
metrics = model.evaluate(test_data)
print(metrics['accuracy'])

产出如下:

实现SFrame..。好了。训练模式。19:49:50 src/nnvm/legacy_json_util.cc:190:先前版本v0.8.0保存的加载符号。试图升级..。19:49:50 src/nnvm/legacy_json_util.cc:198:符号成功升级!调整图像大小..。对调整大小的图像进行特征提取..。完成154/154进展:根据5%的培训数据创建一个验证集。这可能需要一段时间。可以将validation_set=None设置为禁用验证跟踪。 警告:与示例数相比,这个问题中的特征维数非常多。除非设置了适当的正则化值,否则该模型可能无法为验证/测试集提供准确的预测。 Logistic回归: 示例数:143个类数:31个特征列数:1个未打包特征数:1000个系数数: 30030 启动L +-----------+----------+-----------+--------------+-------------------+---------------------+ \\\...-------+----------+-----------+--------------+-------------------+---------------------+.000000 \x{e76f}\x{e76f}=..181818 \x=.=272727 \x{e76f}\x{e76f}272727\x{e76f}\x{=125171x1 x 1.000000 \x{e76f} 9.240253 \x{e76f} 1.000000 \x{e76f} 0.545455 \ +-----------+----------+-----------+--------------+-------------------+---------------------+ 成功:找到最佳解决方案。

然后,在这一点之后,内存完全填满,即使我等待了一段时间,也不会发生任何事情。

我有16 50的内存,为了确保图像的数量不是问题,我甚至在每个标签上运行了5张图片(总共大约有50张图片)。我的电脑和内存我不认为是问题,所以我做错了什么?

谢谢您的任何答复

更新

我发现了问题所在!不过,我不知道怎么解决。

本节:

代码语言:javascript
复制
def get_label(path, labels=labels):  
    for label in labels:  
        if label in path:  
            return label

data['label'] = data['path'].apply(get_label)

没有根据其文件路径正确地标记所有图像吗?这是因为这样的事情

代码语言:javascript
复制
data["foodType"] = data["path"].apply(lambda path: "Rice" if "rice" in path else "Soup")

工作,但使用这种方法,我只能有两个不同的标签(两个不同的文件夹),但我想要更多。是否有任何方法根据他们在超过两个文件夹中的文件夹的名称来标签图像?

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2018-03-29 00:19:46

也许您正在使用的squeezenet_v1.1会比其他模型好得多。您可以尝试通过以下方式来注释data.explore()

代码语言:javascript
复制
# data.explore()

这仅仅是可视化您在turi中的所有图像可能会导致您的内存问题(如果您的数据集有很多图像)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49531494

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档