天天看點

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