尝试使用turicreate教授coreML模型,但不知道如何访问文件

时间:2018-01-19 10:09:18

标签: python coreml turi-create

我正在尝试使用turicreate创建coreML模型。 (这是我第一次触摸python)

让我们说我有五个档案,"狗","猫","鸽子","松鼠","浣熊"

如何更改此代码以便程序访问和训练它。

import turicreate as tc

data = tc.image_analysis.load_images('train', with_path=True)

data['label'] = data['path'].apply(lambda path: 'cat' if 'cat' in path else 'dog')
data.save('images.sframe')

train_data, test_data = data.random_split(0.8)

model = tc.image_classifier.create(train_data, target='label')

predictions = model.predict(test_data)

metrics = model.evaluate(test_data)

model.save('mymodel.model')

model.export_coreml('AnimalImages.mlmodel')

2 个答案:

答案 0 :(得分:0)

就像一张纸条一样,您可能需要的模型才能识别每个额外动物(或类别)的单个图像。如果您还没有针对每个类别的大量图片,可以尝试在此处找到一些图片:http://image-net.org/synset?wnid=n01318894

您正在使用的Turi Create演示假设您将每个类别的所有图像保存在自己的文件夹中。因此,您可以为images/dogimages/catimages/pigeon等设置单独的文件夹。

本教程使用此目录结构为每个图像生成一组标签。您可以通过将data['label'] = ...行替换为:

来概括他们所拥有的内容
import os
data['label'] = data['path'].apply(
    lambda path: os.path.dirname(path).split('/')[-1]
)

这将查看每个图像的路径,并使用最深的文件夹名称作为培训标签。

答案 1 :(得分:0)

用下面两行替换 2nd 3rd 行,您已完成:

data = tc.image_analysis.load_images('train', with_path = True, recursive = True)

data["all_images"] = data["path"].apply(lambda path: getImageFromPath(path))

在导入行下面声明:

def getImageFromPath(path):
return os.path.basename(os.path.dirname(os.path.normpath(path)))

并确保将所有训练图像文件夹保存在名为“ train”的文件夹中(根据您的情况)。并将“ train”文件夹保持与此Python文件相同的路径。