public void CalcInference(int idx) { Thread.Sleep(20000); if (token.IsCancellationRequested) { return; } Console.WriteLine("After sleep"); string sample_name = files[idx]; NN_Inferencer inference_obj = new NN_Inferencer(model_path, sample_name); float[] result = inference_obj.forward(); int res_class = 0; float res_score = -10000; double e = Math.E; double sum_exp = 0; for (int j = 0; j < result.Length; j++) { sum_exp += Math.Pow(e, result[j]); if (result[j] > res_score) { res_score = result[j]; res_class = j; } } double res_prob = Math.Pow(e, res_score) / sum_exp; string res_string = sample_name + " class : " + res_class.ToString() + ", with prob : " + res_prob.ToString(); Console.WriteLine(res_string); resultCollection.Add(res_string); }
public void CalcInference(int idx) { if (token.IsCancellationRequested) { return; } string sample_name = files[idx]; NN_Inferencer inference_obj = new NN_Inferencer(model_path, sample_name); float[] result = inference_obj.forward(); int res_class = 0; float res_score = -10000; double e = Math.E; double sum_exp = 0; for (int j = 0; j < result.Length; j++) { sum_exp += Math.Pow(e, result[j]); if (result[j] > res_score) { res_score = result[j]; res_class = j; } } float res_prob = (float)(Math.Pow(e, res_score) / sum_exp); waitHandler.WaitOne(); { all_results.results[res_class].Add(sample_name); all_results.count[res_class].Count += 1; if (!all_results.classes.Contains(res_class)) { all_results.classes.Add(res_class); } string[] split_sample_name = sample_name.Split('\\'); string suffix = split_sample_name[split_sample_name.Length - 1]; images_with_classes img_obj = new images_with_classes(res_class, sample_name, res_prob, suffix); all_results.images_with_classes.Add(img_obj); using (UserContext db = new UserContext()) { db.images_with_classes.Add(img_obj); db.SaveChanges(); } } waitHandler.Set(); }