private Classifier CreateClassifier()
        {
            Classifier classifier = null;

            try
            {
                using (FileStream positiveExamplesStream = File.OpenRead(_localGiraffePositiveExamplesFilePath), negativeExamplesStream = File.OpenRead(_localNegativeExamplesFilePath))
                {
                    Dictionary <string, Stream> positiveExamples = new Dictionary <string, Stream>();
                    positiveExamples.Add(_giraffeClassname, positiveExamplesStream);
                    CreateClassifier createClassifier = new CreateClassifier(_createdClassifierName, positiveExamples, negativeExamplesStream);
                    classifier = _service.CreateClassifier(createClassifier);
                }
            }
            catch (Exception e)
            {
                if (_trainRetries > 0)
                {
                    _trainRetries--;
                    CreateClassifier();
                }
                else
                {
                    throw e;
                }
            }

            return(classifier);
        }
        private Classifier CreateClassifier(CreateClassifier createClassifier, Dictionary <string, object> customData = null)
        {
            Console.WriteLine("\nAttempting to CreateClassifier()");
            var result = _service.CreateClassifier(createClassifier: createClassifier, customData: customData);

            if (result != null)
            {
                Console.WriteLine("CreateClassifier() succeeded:\n{0}", JsonConvert.SerializeObject(result, Formatting.Indented));
            }
            else
            {
                Console.WriteLine("Failed to CreateClassifier()");
            }

            return(result);
        }
예제 #3
0
        public async Task <Classifier> Create(CreateClassifier request)
        {
            request.UserUid = _currentUserProvider.GetUserUid();

            return(await _mediator.Send(request));
        }
예제 #4
0
        public void TestClassifiers_Success()
        {
            var listClassifiersResult = ListClassifiers();

            Classifier createClassifierResult = null;

            using (FileStream positiveExamplesStream = File.OpenRead(_localGiraffePositiveExamplesFilePath), negativeExamplesStream = File.OpenRead(_localNegativeExamplesFilePath))
            {
                Dictionary <string, Stream> positiveExamples = new Dictionary <string, Stream>();
                positiveExamples.Add(_giraffeClassname, positiveExamplesStream);
                CreateClassifier createClassifier = new CreateClassifier(_createdClassifierName, positiveExamples, negativeExamplesStream);
                createClassifierResult = _service.CreateClassifier(createClassifier);
            }

            string createdClassifierId = createClassifierResult.ClassifierId;

            var getClassifierResult = GetClassifier(createdClassifierId);

            try
            {
                IsClassifierReady(createdClassifierId);
            }
            catch (Exception e)
            {
                Console.WriteLine("Failed to get classifier...");
            }
            autoEvent.WaitOne();

            Classifier updateClassifierResult = null;
            var        retrainRetries         = 0;

            try
            {
                using (FileStream positiveExamplesStream = File.OpenRead(_localTurtlePositiveExamplesFilePath))
                {
                    Dictionary <string, Stream> positiveExamples = new Dictionary <string, Stream>();
                    positiveExamples.Add(_turtleClassname, positiveExamplesStream);
                    UpdateClassifier updateClassifier = new UpdateClassifier(createdClassifierId, positiveExamples);
                    updateClassifierResult = _service.UpdateClassifier(updateClassifier);
                }
            }
            catch (Exception e)
            {
                retrainRetries++;

                if (retrainRetries < 3)
                {
                    Console.WriteLine("Retraining failed. Retrying...");
                    using (FileStream positiveExamplesStream = File.OpenRead(_localTurtlePositiveExamplesFilePath))
                    {
                        Dictionary <string, Stream> positiveExamples = new Dictionary <string, Stream>();
                        positiveExamples.Add(_turtleClassname, positiveExamplesStream);
                        UpdateClassifier updateClassifier = new UpdateClassifier(createdClassifierId, positiveExamples);
                        updateClassifierResult = _service.UpdateClassifier(updateClassifier);
                    }
                }
                else
                {
                    Console.WriteLine("Retraining failed. Out of retries...");
                }
            }

            try
            {
                IsClassifierReady(createdClassifierId);
            }
            catch (Exception e)
            {
                Console.WriteLine("Failed to get classifier...");
            }
            autoEvent.WaitOne();

            var deleteClassifierResult = DeleteClassifier(createdClassifierId);

            Assert.IsNotNull(deleteClassifierResult);
            Assert.IsNotNull(updateClassifierResult);
            Assert.IsTrue(updateClassifierResult.ClassifierId == createdClassifierId);
            Assert.IsNotNull(getClassifierResult);
            Assert.IsTrue(getClassifierResult.ClassifierId == createdClassifierId);
            Assert.IsNotNull(createClassifierResult);
            Assert.IsTrue(createClassifierResult.Name == _createdClassifierName);
            Assert.IsNotNull(listClassifiersResult);
        }