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); } } }
public void TrainClothingModel(string imagePath, string imageTag) { // Since apparently we can only have 10 iterations max DeleteEarliestIteration(true); var tags = ClothingTrainingApi.GetTags(ClothingModelProjectID); Tag trainTag = null; foreach (Tag tag in tags) { if (tag.Name.Equals(imageTag)) { trainTag = tag; break; } } using (var stream = File.Open(imagePath, FileMode.Open)) { ClothingTrainingApi.CreateImagesFromData(ClothingModelProjectID, stream, new List <string>() { trainTag.Id.ToString() }); } var iteration = ClothingTrainingApi.TrainProject(ClothingModelProjectID); while (iteration.Status == "Training") { Thread.Sleep(1000); iteration = ClothingTrainingApi.GetIteration(ClothingModelProjectID, iteration.Id); } iteration.IsDefault = true; ClothingTrainingApi.UpdateIteration(ClothingModelProjectID, iteration.Id, iteration); File.Delete(imagePath); }