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); }
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); }
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); }
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); }
/// <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); }
/// <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); }