onnxruntime/csharp/test/Microsoft.AI.MachineLearning.Tests.DotNet5_0/Program.cs
Sheil Kumar a6a23db130
Enable C# .NET5 for WinML (#6120)
* build for .net5

* only reference cswinrt for .net5

* remove netstandard2.0 references

* upgrade language version

* net5

* remove extra comment closure

* add targetframework

* set target framework

* remove net*

* pep8 errors

* make test project build with .net windows SDK projection

* disable c# builds for non-x64 builds

* fix pep8 errors

* disable for store build

* fix tests

* remove cswinrt and sdk references from package

* bump cswinrt down to 1.0.1

* fix bin path

Co-authored-by: Sheil Kumar <sheilk@microsoft.com>
2020-12-14 15:05:15 -08:00

70 lines
3.1 KiB
C#

using System;
namespace ConsoleApp17
{
class Program
{
static void PerformInference(Windows.Media.VideoFrame frame)
{
Console.WriteLine("Load squeezenet.onnx.");
using (var model = Microsoft.AI.MachineLearning.LearningModel.LoadFromFilePath("squeezenet.onnx"))
{
Console.WriteLine("Create LearningModelSession.");
using (var session = new Microsoft.AI.MachineLearning.LearningModelSession(model))
{
Console.WriteLine("Create LearningModelBinding.");
var binding = new Microsoft.AI.MachineLearning.LearningModelBinding(session);
Console.WriteLine("Bind data_0.");
binding.Bind("data_0", frame);
Console.WriteLine("Evaluate.");
var results = session.Evaluate(binding, "");
}
Console.WriteLine("Success!\n");
}
}
static void Main(string[] args)
{
Console.WriteLine("Load kitten_224.png as StorageFile.");
var name = AppDomain.CurrentDomain.BaseDirectory + "kitten_224.png";
var getFileFromPathTask = Windows.Storage.StorageFile.GetFileFromPathAsync(name);
getFileFromPathTask.AsTask()
.ContinueWith<Windows.Storage.Streams.IRandomAccessStreamWithContentType>(
(task) =>
{
var image = task.Result;
Console.WriteLine("Load StorageFile into Stream.");
var stream_task = image.OpenReadAsync();
return stream_task.AsTask().Result;
})
.ContinueWith<Windows.Graphics.Imaging.BitmapDecoder>(
(task) =>
{
using (var stream = task.Result)
{
Console.WriteLine("Create SoftwareBitmap from decoded Stream.");
var decoder_task = Windows.Graphics.Imaging.BitmapDecoder.CreateAsync(stream);
return decoder_task.AsTask().Result;
}
})
.ContinueWith<Windows.Graphics.Imaging.SoftwareBitmap>(
(task) =>
{
var decoder = task.Result;
var software_bitmap_task = decoder.GetSoftwareBitmapAsync();
return software_bitmap_task.AsTask().Result;
})
.ContinueWith(
(task) =>
{
using (var software_bitmap = task.Result)
{
Console.WriteLine("Create VideoFrame.");
var frame = Windows.Media.VideoFrame.CreateWithSoftwareBitmap(software_bitmap);
PerformInference(frame);
}
})
.Wait();
}
}
}