學習CRM最強AI:Salesforce Einstein之Dataset和Model

創建了dataset之後,就是要train dataset。train dataset的命令例如:

curl -X POST -H "Authorization: Bearer <TOKEN>" -H "Cache-Control: no-cache" -H "Content-Type: multipart/form-data" -F "name=Beach and Mountain Model" -F "datasetId=<DATASET_ID>" https://api.einstein.ai/v2/vision/train

將<TOKEN>替換為你自己的token,<DATASET_ID>替換為你自己的dataset id。這個命令將train指定的dataset並且創建一個model。之後將返回一個類似與如下的response:

Advertisements

{ "datasetId": 1000038, "datasetVersionId": 0, "name": "Beach and Mountain Model", "status": "QUEUED", "progress": 0, "createdAt": "2017-02-21T21:10:03.000+0000", "updatedAt": "2017-02-21T21:10:03.000+0000", "learningRate": 0.001, "epochs": 3, "queuePosition": 1, "object": "training", "modelId": "X76USM4Q3QRZRODBDTUGDZEHJU", "trainParams": null, "trainStats": null, "modelType": "image"}

接下來要記下modelId,在下一步中將要用到。根據你dataset的圖片數量,train所需要的時間也不一定。我們可以用另外一個命令來獲取train的狀態等信息:

Advertisements

curl -X GET -H "Authorization: Bearer <TOKEN>" -H "Cache-Control: no-cache" https://api.einstein.ai/v2/vision/train/<YOUR_MODEL_ID>

同樣,將<TOKEN>替換成你自己的token<YOUR_MODEL_ID>替換成之前記下來的model id。返回來的response JSON如下:

{ "datasetId": 1000072, "datasetVersionId": 0, "name": "Beach and Mountain Model", "status": "SUCCEEDED", "progress": 1, "createdAt": "2017-02-21T22:08:52.000+0000", "updatedAt": "2017-02-21T22:10:20.000+0000", "learningRate": 0.001, "epochs": 3, "object": "training", "modelId": "X76USM4Q3QRZRODBDTUGDZEHJU", "trainParams": null, "trainStats": { "labels": 2, "examples": 99, "totalTime": "00:02:16:958", "trainingTime": "00:02:13:664", "earlyStopping": false, "lastEpochDone": 3, "modelSaveTime": "00:00:01:871", "testSplitSize": 6, "trainSplitSize": 93, "datasetLoadTime": "00:00:03:270"}, "modelType": "image"}

如果train正在進行中,status為RUNNING。如果train完成,status為SUCCEEDED,並且progress為1.

在創建完model之後,你可以檢索度量模型,比如它的準確性,f1的分數,混淆矩陣。你可以使用這些值來優化和調整您的model。命令如下:

curl -X GET -H "Authorization: Bearer <TOKEN>" -H "Cache-Control: no-cache" https://api.einstein.ai/v2/vision/models/<MODEL_ID>

返回的response類似於如下JSON:

{ "metricsData": { "f1": [ 0.8000000000000002, 0.6666666666666666], "labels": [ "Mountains", "Beaches"], "testAccuracy": 0.75, "trainingLoss": 0.0622, "confusionMatrix": [[ 4, 1],[ 1, 2]], "trainingAccuracy": 0.9814}, "createdAt": "2017-02-21T22:19:25.000+0000", "id": "X76USM4Q3QRZRODBDTUGDZEHJU", "object": "metrics"}

在以上的步驟全部完成之後,你就需要上傳你需要進行分類的圖片:

curl -X POST -H "Authorization: Bearer <TOKEN>" -H "Cache-Control: no-cache" -H "Content-Type: multipart/form-data" -F "sampleLocation=http://einstein.ai/images/546212389.jpg" -F "modelId=<YOUR_MODEL_ID>" https://api.einstein.ai/v2/vision/predict

返回的JSON如下:

{ "probabilities": [{ "label": "Beaches", "probability": 0.97554934},{ "label": "Mountains", "probability": 0.024450686}], "object": "predictresponse"}

很顯然,這個結果的每個比例都顯示出來,之後可以根據你的需要,將第一個或者前幾個來顯示出來。

在調用其他介面的時候,只要根據API的要求,參數不少不錯,就會返回對應的response,而且就算出現問題,也會在返回的JSON中顯示出來。之前我做過一個和阿里雲的添加解析記錄的集成,有時間和大家分享一下。

--希望以後可以和大家一起學習,一起成長--

Advertisements

你可能會喜歡