Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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();
        }