public void DeleteEarliestIteration(bool isClothing) { if (isClothing) { var iterations = ClothingTrainingApi.GetIterations(ClothingModelProjectID); Iteration iterationToDelete = iterations[iterations.Count - 1]; if (iterations.Count == 10) { ClothingTrainingApi.DeleteIteration(ClothingModelProjectID, iterationToDelete.Id); } } else { var iterations = ClassifierTrainingApi.GetIterations(ClassifierModelProjectID); Iteration iterationToDelete = iterations[iterations.Count - 1]; if (iterations.Count == 10) { ClassifierTrainingApi.DeleteIteration(ClassifierModelProjectID, iterationToDelete.Id); } } }
protected void CreateNewTag(string newTag) { var tags = ClassifierTrainingApi.GetTags(ClassifierModelProjectID); bool tagExists = false; Tag bookTag = null; foreach (Tag tag in tags) { if (tag.Name.Equals(newTag)) { tagExists = true; bookTag = tag; break; } } if (!tagExists) { // Save image in tag folder // Check number of images in folder // If > 5, proceed with creating tag and training bookTag = ClassifierTrainingApi.CreateTag(ClassifierModelProjectID, newTag); } }
public void TrainClassifierModel(string imagePath, string imageTag) { // Since apparently we can only have 10 iterations max DeleteEarliestIteration(false); var tags = ClassifierTrainingApi.GetTags(ClassifierModelProjectID); Tag trainTag = null; foreach (Tag tag in tags) { if (tag.Name.Equals(imageTag)) { trainTag = tag; break; } } using (var stream = File.Open(imagePath, FileMode.Open)) { ClassifierTrainingApi.CreateImagesFromData(ClassifierModelProjectID, stream, new List <string>() { trainTag.Id.ToString() }); } var iteration = ClassifierTrainingApi.TrainProject(ClassifierModelProjectID); while (iteration.Status == "Training") { Thread.Sleep(1000); iteration = ClassifierTrainingApi.GetIteration(ClassifierModelProjectID, iteration.Id); } iteration.IsDefault = true; ClassifierTrainingApi.UpdateIteration(ClassifierModelProjectID, iteration.Id, iteration); File.Delete(imagePath); }