public void ModelNotLoadedExceptionThrownTest() { var configuration = new ImageClassifierConfiguration { ImageHeight = 28, ImageWidth = 28, Labels = new[] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" }, PathToModel = "TestData/not_exist.pt" }; var classifier = new MnistImageClassifier(configuration); Assert.Throws <ModelNotLoadedException>(() => classifier.LoadModel()); }
public void RecognizeNumberTest() { var configuration = new ImageClassifierConfiguration { ImageHeight = 28, ImageWidth = 28, Labels = new[] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" }, PathToModel = "TestData/traced_model.pt" }; var classifier = new MnistImageClassifier(configuration); classifier.LoadModel(); var image = Image.FromFile("TestData/seven.png"); var label = classifier.ClassifyImage(image); Assert.Contains(label, configuration.Labels); }
public async Task SmokeTestWorkers() { using var cancellationTokenSource = new CancellationTokenSource(); var workers = new List <IImageClassifierWorker>(); for (var i = 0; i < 5; ++i) { var configuration = new ImageClassifierConfiguration { ImageHeight = 28, ImageWidth = 28, Labels = new[] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" }, PathToModel = "TestData/traced_model.pt" }; var classifier = new MnistImageClassifier(configuration); var worker = new ImageClassifierWorker(classifier); await worker.StartWorker(cancellationTokenSource.Token); workers.Add(worker); } var image = Image.FromFile("TestData/seven.png"); var results = new List <Task <string> >(); foreach (var worker in workers) { for (var i = 0; i < 10; i++) { results.Add(worker.Classify(image)); } } var labels = new[] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" }; foreach (var taskResult in results) { Assert.Contains(await taskResult, labels); } cancellationTokenSource.Cancel(); foreach (var worker in workers) { worker.StopWorker(); } }