【问题标题】:Train own classifier IBM Watson Visual Recognition Unity3d训练自己的分类器 IBM Watson Visual Recognition Unity3d
【发布时间】:2017-05-22 21:10:46
【问题描述】:

我已经按照安装 SDK 和配置服务凭据的步骤进行操作。问题是我无法训练自己的分类器。我收到此错误:No overload for method 'TrainClassifier' takes 5 arguments

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的链接。谢谢!

【问题讨论】:

    标签: c# unity3d watson visual-recognition


    【解决方案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 就在您面前。下次遇到这样的错误时,选择函数,右键单击Go To Definition。它将向您显示函数的重载,然后您将能够在其中传递正确的参数。

    你的代码应该是这样的:

    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 获取。从插件附带的 Example 文件夹 中获取它。

    【讨论】:

    • 谢谢大佬,我今天学到了一些东西。我试图运行代码,但我没有t got any response from the console. Do you have any idea why? I hope Im 没有要求太多。谢谢!
    • 我得到了回复。我的答案是修复您的No overload for method 'TrainClassifier' takes 5 arguments 错误。请为其他问题创建一个新问题。我会看看他们。如果您的错误消失了,请不要忘记接受这一点。
    猜你喜欢
    • 2017-05-23
    • 1970-01-01
    • 2018-06-09
    • 1970-01-01
    • 1970-01-01
    • 2020-09-23
    • 2017-10-12
    • 1970-01-01
    • 2017-03-23
    相关资源
    最近更新 更多