public async Task <IDictionary <string, float> > EvaluateAsync(SoftwareBitmap bitmap) { var videoFrame = VideoFrame.CreateWithSoftwareBitmap(bitmap); var imageFeatureValue = ImageFeatureValue.CreateFromVideoFrame(videoFrame); var input = new SmartInkModelInput() { data = imageFeatureValue }; var output = new SmartInkModelOutput(); _binding.Bind("data", input.data); _binding.Bind("classLabel", output.ClassLabel); _binding.Bind("loss", output.Loss); LearningModelEvaluationResult result = await _session.EvaluateAsync(_binding, "0"); output.ClassLabel = result.Outputs["classLabel"] as TensorString;//).GetAsVectorView()[0]; output.Loss = result.Outputs["loss"] as IList <IDictionary <string, float> >; var dict = new Dictionary <string, float>(); foreach (var key in output.Loss[0].Keys) { dict.Add(key, output.Loss[0][key]); } return(dict); }
/// <summary> /// Evaluate the model /// </summary> /// <param name="input">The VideoFrame to evaluate</param> /// <returns></returns> public async Task <ONNXModelOutput> EvaluateAsync(ONNXModelInput input) { var output = new ONNXModelOutput(); var binding = new LearningModelBinding(_session); binding.Bind("data", input.data); binding.Bind("classLabel", output.classLabel); binding.Bind("loss", output.loss); LearningModelEvaluationResult result = await _session.EvaluateAsync(binding, "0"); return(output); }
public async Task <ModelOutput> EvaluateAsync(OnnxModelInput input) { var output = new ModelOutput(); var binding = new LearningModelBinding(_session); binding.Bind("data", input.Data); //binding.Bind("classLabel", output.ClassLabel); //binding.Bind("loss", output.Loss); LearningModelEvaluationResult evalResult = await _session.EvaluateAsync(binding, "0"); return(output); }
public static unsafe T Output <T>(this LearningModelEvaluationResult self, int index) where T : class { return(self.Outputs.ElementAt(index).Value as T); }
public static unsafe object Output(this LearningModelEvaluationResult self, int index) { return(self.Outputs.ElementAt(index).Value as object); }