2017-01-08 49 views
0

我已經遵循了安裝SDK和配置服務憑證的步驟。問題是我不能訓練我自己的分類器。我得到這個錯誤:No overload for method 'TrainClassifier' takes 5 arguments訓練自己的分類器IBM Watson Visual Recognition Unity3d

void Start() 
{ 
    string m_positiveExamplesPath = Application.dataPath + "/testData/cpu_positive_examples.zip"; 
    string m_negativeExamplesPath = Application.dataPath + "/testData/negative_examples.zip"; 
    if(!m_VisualRecognition.TrainClassifier("components", "cpu", m_positiveExamplesPath, m_negativeExamplesPath, OnTrainClassifier)) 
     Log.Debug("ExampleVisualRecognition", "Train classifier failed!"); 
} 

private void OnTrainClassifier(GetClassifiersPerClassifierVerbose classifier) 
{ 

    if(classifier != null) 
    { 
     Log.Debug("ExampleVisualRecognition", "Classifier is training! " + classifier); 
    } 
    else 
    { 
     Log.Debug("ExampleVisualRecognition", "Failed to train classifier!"); 
    } 
} 

Here是GitHub中SDK的鏈接。謝謝!

回答

1

您從example page複製了該代碼,但看起來該頁面上的所有內容都已過時。它需要由IBM進行更新。

VisualRecognition類有2個重載TrainClassifier

public bool TrainClassifier(OnTrainClassifier callback, string classifierName, Dictionary<string, string> positiveExamples, string negativeExamplesPath = default(string), string mimeType = "application/zip", string customData = default(string)) 

public bool TrainClassifier(OnTrainClassifier callback, string classifierName, Dictionary<string, byte[]> positiveExamplesData, byte[] negativeExamplesData = null, string mimeType = "application/zip", string customData = default(string)) 

你有SDK就在你的面前。下次您收到此類錯誤時,請選擇該功能,然後右鍵點擊前往定義。它會告訴你該函數的過載,然後你將能夠在它內部傳遞正確的參數。

enter image description here

你的代碼應該是這樣的:

private VisualRecognition m_VisualRecognition = new VisualRecognition(); 

void Start() 
{ 
    string m_positiveExamplesPath = Application.dataPath + "/testData/cpu_positive_examples.zip"; 
    string m_negativeExamplesPath = Application.dataPath + "/testData/negative_examples.zip"; 

    Dictionary<string, string> positiveExamples = new Dictionary<string, string>(); 
    positiveExamples.Add("giraffe", m_positiveExamplesPath); 

    if (!m_VisualRecognition.TrainClassifier(OnTrainClassifier, "unity-test-classifier-example", positiveExamples, m_negativeExamplesPath)) 
     Log.Debug("ExampleVisualRecognition", "Train classifier failed!"); 
} 

private void OnTrainClassifier(GetClassifiersPerClassifierVerbose classifier, string data) 
{ 

    if (classifier != null) 
    { 
     Log.Debug("ExampleVisualRecognition", "Classifier is training! " + classifier); 
    } 
    else 
    { 
     Log.Debug("ExampleVisualRecognition", "Failed to train classifier!"); 
    } 
} 

如果您需要任何其他的例子,example page得到它。從插件附帶的示例文件夾中獲取。

+0

謝謝你,今天我學到了一些東西。我試圖運行代碼,但是我沒有從控制檯得到任何迴應。你有什麼想法,爲什麼?我希望我不要問太多。謝謝! – MDLots

+0

我能夠得到回覆。我的答案是解決你的'沒有重載的方法'TrainClassifier'有5個參數的錯誤。請爲其他問題創建一個新問題。我會看看他們。如果你的錯誤消失了,請不要忘記接受。 – Programmer