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