天天看点

Py之turicreate:turicreate的简介、安装、使用方法之详细攻略

turicreate的简介

     苹果开源Turi Create:让机器学习更容易!turicreate简化了定制机器学习模型的开发。你不必是机器学习专家就可以向你的应用添加推荐、对象检测、图像分类、图像相似性或活动分类。

API文档:Turi Create API Documentation

GitHub:

https://github.com/apple/turicreate

1、特点

易于使用:专注于任务而不是算法

可视化:内置的流式可视化,用于探索数据

灵活:支持文本、图像、音频、视频和传感器数据

快速且可扩展:在一台机器上使用大型数据集

准备部署:将模型导出到Core ML,以用于iOS、macOS、watchOS和tvOS应用程序

2、应用

基于算法:1.推荐系统(Recommender systems) 2.图像相似性(Image similarity) 3.文本分类器(text classification)

基于应用程序:1.图像分类(Image classification) 2.物体检测(Object Detection)3. 活动分类器(Activity Classifier)

ML Task Description

Recommender 用户推荐

Image Classification 图片分类

Object Detection 物体识别

Style Transfer 图片风格化

Activity Classification 动作识别

Image Similarity 图片归同

Classifiers 预测标签

Regression 回归分析

Clustering 数据分组

Text Classifier 文本识别

turicreate的安装

T1、第一种方式安装

pip install turicreate

T2、第二种方式安装

进入到该文件的setup.py 目录下 ,打开cmd,并切换到该目录下;

先执行 python setup.py build

然后执行 python setup.py install

turicreate的使用方法

1、利用apple机器学习平台Turicreate实现图像相似性检索

1、数据导入

import turicreate as tc

# Load images from the downloaded data

reference_data  = tc.image_analysis.load_images('./101_ObjectCategories')

load_images(url, format='auto', with_path=True, recursive=True, ignore_failure=True, random_order=False)

2、利用Resnet50数据特征提取

create(dataset, label = None, feature = None, model = 'resnet-50', verbose = True)  #model默认使用resnet50,label是标识行,如reference_data中的path

model = tc.image_similarity.create(reference_data)

model.save('my_model_file')

loaded_model = tc.load_model('my_model_file')

3、通过query查询实现相似搜索

similar_images = model.query(reference_data[0:10] ,label = 'path',k=10)

similar_images.head()

query(dataset, label=None, k=5, radius=None, verbose=True)

   - dataset:SFrame,需查询的数据

   - label:索引名,选择一列,输入列名

   - k:最大返回样本数

   - radius:半径范围,如果超过radius个间隔,就不显示

   - verbose:打印进度更新和模型细节。

通过similarity_graph实现相似关联图搜索

graph = model.similarity_graph(k=1)  # an SGraph

similarity_graph(k=5, radius=None, include_self_edges=False, output_type='SGraph', verbose=True)

   k:最大返回样本数

   radius:float,半径范围,如果超过radius个间隔,就不显示

   include_self_edges:是否包含自己,True的话,返回的结果包含自己(自己的相似性为1)

   output_type:‘SGraph’, ‘SFrame’两种

   verbose:打印进度更新和模型细节。

graph.edges