public async Task <IMachineLearningOutput> EvaluateAsync(IMachineLearningInput input)
        {
            var modelInput = input as TinyYOLOModelModelInput;
            TinyYOLOModelModelOutput    output  = new TinyYOLOModelModelOutput();
            LearningModelBindingPreview binding = new LearningModelBindingPreview(LearningModel);

            binding.Bind("image", modelInput.image);
            binding.Bind("grid", output.grid);
            LearningModelEvaluationResultPreview evalResult = await LearningModel.EvaluateAsync(binding, string.Empty);

            return(output);
        }
        public async Task <IMachineLearningOutput> EvaluateAsync(IMachineLearningInput input)
        {
            var modelInput = input as TinyYOLOInput;

            Binding.Bind("image", modelInput.image);
            var result = await Session.EvaluateAsync(Binding, "0");

            var output = new TinyYOLOOutput();

            output.grid = result.Outputs["grid"] as TensorFloat16Bit;
            return(output);
        }
        public async Task <IMachineLearningOutput> EvaluateAsync(IMachineLearningInput input)
        {
            var modelInput = input as FNSInput;

            Binding.Bind("inputImage", modelInput.inputImage);
            var result = await Session.EvaluateAsync(Binding, "0");

            var output = new FNSOutput();

            output.outputImage = result.Outputs["outputImage"] as TensorFloat16Bit;
            return(output);
        }
        public async Task <IMachineLearningOutput> EvaluateAsync(IMachineLearningInput input)
        {
            var modelInput = input as Inceptionv3Input;

            Binding.Bind("image", modelInput.image);
            var result = await Session.EvaluateAsync(Binding, "0");

            var output = new Inceptionv3Output();

            output.classLabel      = result.Outputs["classLabel"] as TensorString;
            output.classLabelProbs = result.Outputs["classLabelProbs"] as IList <Dictionary <string, float> >;
            return(output);
        }
        public async Task <IMachineLearningOutput> EvaluateAsync(IMachineLearningInput input)
        {
            var modelInput = input as GoogLeNetPlacesModelModelInput;
            GoogLeNetPlacesModelModelOutput output  = new GoogLeNetPlacesModelModelOutput();
            LearningModelBindingPreview     binding = new LearningModelBindingPreview(LearningModel);

            binding.Bind("sceneImage", modelInput.sceneImage);
            binding.Bind("sceneLabel", output.sceneLabel);
            binding.Bind("sceneLabelProbs", output.sceneLabelProbs);
            LearningModelEvaluationResultPreview evalResult = await LearningModel.EvaluateAsync(binding, string.Empty);

            return(output);
        }
示例#6
0
        public async Task <IMachineLearningOutput> EvaluateAsync(IMachineLearningInput input)
        {
            var modelInput = input as GoogLeNetPlacesInput;

            Binding.Bind("sceneImage", modelInput.sceneImage);
            var result = await Session.EvaluateAsync(Binding, "0");

            var output = new GoogLeNetPlacesOutput();

            output.sceneLabel      = result.Outputs["sceneLabel"] as TensorString;
            output.sceneLabelProbs = result.Outputs["sceneLabelProbs"] as IList <Dictionary <string, float> >;
            return(output);
        }
        public async Task <IMachineLearningOutput> EvaluateAsync(IMachineLearningInput input)
        {
            var modelInput = input as ResNet50ModelInput;
            ResNet50ModelOutput         output  = new ResNet50ModelOutput();
            LearningModelBindingPreview binding = new LearningModelBindingPreview(LearningModel);

            binding.Bind("image", modelInput.image);
            binding.Bind("classLabel", output.classLabel);
            binding.Bind("classLabelProbs", output.classLabelProbs);
            LearningModelEvaluationResultPreview evalResult = await LearningModel.EvaluateAsync(binding, string.Empty);

            return(output);
        }
示例#8
0
        public async Task <IMachineLearningOutput> EvaluateAsync(IMachineLearningInput input)
        {
            var modelInput = input as RN1015k500Input;

            Binding.Bind("data", modelInput.data);
            var result = await Session.EvaluateAsync(Binding, "0");

            var output = new RN1015k500Output();

            output.classLabel     = result.Outputs["classLabel"] as TensorString;
            output.softmax_output = result.Outputs["softmax_output"] as IList <Dictionary <string, float> >;
            return(output);
        }
示例#9
0
        public async Task <IMachineLearningOutput> EvaluateAsync(IMachineLearningInput input)
        {
            if (input is SqueezeNetInput modelInput)
            {
                Binding.Bind("data_0", modelInput.Image);
            }
            var results = await Session.EvaluateAsync(Binding, "0");

            if (!(results.Outputs["softmaxout_1"] is TensorFloat resultTensor))
            {
                return(null);
            }
            var resultVector = resultTensor.GetAsVectorView();
            // Find the top 3 probabilities
            var indexedResults = resultVector.Select((t, i) => (index: i, probability: resultVector.ElementAt(i)))
                                 .ToList();

            indexedResults.Sort((a, b) => {
                if (a.probability < b.probability)
                {
                    return(1);
                }

                if (a.probability > b.probability)
                {
                    return(-1);
                }

                return(0);
            });
            var ret = new List <(string label, float probability)>();

            for (var i = 0; i < 3; i++)
            {
                ret.Add((_labels[indexedResults[i].index], indexedResults[i].probability));
            }

            var output = new SqueezeNetOutput {
                classLabelProbs = ret
            };

            return(output);
        }
示例#10
0
        /// <summary>
        /// evaluate a model
        /// </summary>
        /// <param name="input"></param>
        /// <param name="learningModel"></param>
        /// <returns></returns>
        public async static Task <(IMachineLearningOutput Result, double EvalutionTime)> EvaluateWithTimeReturnAsync(IMachineLearningInput input, IMachineLearningModel learningModel)
        {
            var startTime = DateTime.Now;
            var output    = await EvaluateAsync(input, learningModel);

            var costTime = (DateTime.Now - startTime).TotalSeconds;

            return(output, costTime);
        }
示例#11
0
        /// <summary>
        /// evaluate a model
        /// </summary>
        /// <param name="input"></param>
        /// <param name="learningModel"></param>
        /// <returns></returns>
        public async static Task <IMachineLearningOutput> EvaluateAsync(IMachineLearningInput input, IMachineLearningModel learningModel)
        {
            var output = await learningModel.EvaluateAsync(input);

            return(output);
        }