尝试使用 turicreate 教授 coreML 模型但不知道如何访问文件
Trying to teach coreML model with turicreate but don't know how to access file
我正在尝试使用 turicreate 制作 coreML 模型。
(我是第一次接触python)
假设我有五个文件,"dog"、"cat"、"pigeon"、"squirrel"、"raccoon"。
如何更改此代码以便程序访问和训练它。
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')
请注意,对于您希望模型识别的每个其他动物(或类别),您可能需要不止一张图像。如果您还没有每个类别的一堆图片,您可以尝试在这里找到一些:http://image-net.org/synset?wnid=n01318894
您正在使用的 Turi Create 演示假定每个类别的所有图像都保存在它们自己的文件夹中。所以你会有单独的文件夹 images/dog
、images/cat
、images/pigeon
等
本教程使用此目录结构为每个图像生成一组标签。您可以通过将 data['label'] = ...
行替换为:
来概括他们的内容
import os
data['label'] = data['path'].apply(
lambda path: os.path.dirname(path).split('/')[-1]
)
这将查看每个图像的路径,并使用最深的文件夹名称作为训练标签。
将 2nd 和 3rd 代码行替换为以下 2 行,您就完成了:
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 文件保持在同一路径中。
我正在尝试使用 turicreate 制作 coreML 模型。 (我是第一次接触python)
假设我有五个文件,"dog"、"cat"、"pigeon"、"squirrel"、"raccoon"。
如何更改此代码以便程序访问和训练它。
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')
请注意,对于您希望模型识别的每个其他动物(或类别),您可能需要不止一张图像。如果您还没有每个类别的一堆图片,您可以尝试在这里找到一些:http://image-net.org/synset?wnid=n01318894
您正在使用的 Turi Create 演示假定每个类别的所有图像都保存在它们自己的文件夹中。所以你会有单独的文件夹 images/dog
、images/cat
、images/pigeon
等
本教程使用此目录结构为每个图像生成一组标签。您可以通过将 data['label'] = ...
行替换为:
import os
data['label'] = data['path'].apply(
lambda path: os.path.dirname(path).split('/')[-1]
)
这将查看每个图像的路径,并使用最深的文件夹名称作为训练标签。
将 2nd 和 3rd 代码行替换为以下 2 行,您就完成了:
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 文件保持在同一路径中。