public void OnnxModelScenario()
        {
            var modelFile = "squeezenet/00000001/model.onnx";

            using (var env = new ConsoleEnvironment(seed: 1, conc: 1))
            {
                var samplevector = GetSampleArrayData();

                var dataView = ML.Data.ReadFromEnumerable(
                    new TestData[] {
                    new TestData()
                    {
                        data_0 = samplevector
                    }
                });

                var onnx = new OnnxTransformer(env, "softmaxout_1", modelFile, "data_0").Transform(dataView);

                onnx.Schema.TryGetColumnIndex("softmaxout_1", out int score);

                using (var curs = onnx.GetRowCursor(onnx.Schema["softmaxout_1"]))
                {
                    var getScores = curs.GetGetter <VBuffer <float> >(score);
                    var buffer    = default(VBuffer <float>);
                    while (curs.MoveNext())
                    {
                        getScores(ref buffer);
                        Assert.Equal(1000, buffer.Length);
                    }
                }
            }
        }
示例#2
0
        [ConditionalFact(typeof(Environment), nameof(Environment.Is64BitProcess))] // x86 output differs from Baseline
        public void OnnxModelMultiInput()
        {
            if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
            {
                return;
            }

            var modelFile = @"twoinput\twoinput.onnx";

            using (var env = new ConsoleEnvironment(seed: 1, conc: 1))
            {
                var samplevector = GetSampleArrayData();

                var dataView = ComponentCreation.CreateDataView(Env,
                                                                new TestDataMulti[] {
                    new TestDataMulti()
                    {
                        ina = new float[] { 1, 2, 3, 4, 5 },
                        inb = new float[] { 1, 2, 3, 4, 5 }
                    }
                });
                var onnx = new OnnxTransformer(env, modelFile, new[] { "ina", "inb" }, new[] { "outa", "outb" }).Transform(dataView);

                onnx.Schema.TryGetColumnIndex("outa", out int scoresa);
                onnx.Schema.TryGetColumnIndex("outb", out int scoresb);
                using (var curs = onnx.GetRowCursor(col => col == scoresa || col == scoresb))
                {
                    var getScoresa = curs.GetGetter <VBuffer <float> >(scoresa);
                    var getScoresb = curs.GetGetter <VBuffer <float> >(scoresb);
                    var buffera    = default(VBuffer <float>);
                    var bufferb    = default(VBuffer <float>);

                    while (curs.MoveNext())
                    {
                        getScoresa(ref buffera);
                        getScoresb(ref bufferb);
                        Assert.Equal(5, buffera.Length);
                        Assert.Equal(5, bufferb.Length);
                        Assert.Equal(0, buffera.GetValues().ToArray().Sum());
                        Assert.Equal(30, bufferb.GetValues().ToArray().Sum());
                    }
                }
            }
        }
        public void OnnxModelMultiInput()
        {
            var modelFile = Path.Combine(Directory.GetCurrentDirectory(), "twoinput", "twoinput.onnx");

            using (var env = new ConsoleEnvironment(seed: 1, conc: 1))
            {
                var samplevector = GetSampleArrayData();

                var dataView = ML.Data.ReadFromEnumerable(
                    new TestDataMulti[] {
                    new TestDataMulti()
                    {
                        ina = new float[] { 1, 2, 3, 4, 5 },
                        inb = new float[] { 1, 2, 3, 4, 5 }
                    }
                });
                var onnx = new OnnxTransformer(env, new[] { "outa", "outb" }, new[] { "ina", "inb" }, modelFile).Transform(dataView);

                onnx.Schema.TryGetColumnIndex("outa", out int scoresa);
                onnx.Schema.TryGetColumnIndex("outb", out int scoresb);
                using (var curs = onnx.GetRowCursor(onnx.Schema["outa"], onnx.Schema["outb"]))
                {
                    var getScoresa = curs.GetGetter <VBuffer <float> >(scoresa);
                    var getScoresb = curs.GetGetter <VBuffer <float> >(scoresb);
                    var buffera    = default(VBuffer <float>);
                    var bufferb    = default(VBuffer <float>);

                    while (curs.MoveNext())
                    {
                        getScoresa(ref buffera);
                        getScoresb(ref bufferb);
                        Assert.Equal(5, buffera.Length);
                        Assert.Equal(5, bufferb.Length);
                        Assert.Equal(0, buffera.GetValues().ToArray().Sum());
                        Assert.Equal(30, bufferb.GetValues().ToArray().Sum());
                    }
                }
            }
        }
示例#4
0
        [ConditionalFact(typeof(Environment), nameof(Environment.Is64BitProcess))] // x86 output differs from Baseline
        public void OnnxModelScenario()
        {
            if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
            {
                return;
            }

            var modelFile = "squeezenet/00000001/model.onnx";

            using (var env = new ConsoleEnvironment(seed: 1, conc: 1))
            {
                var samplevector = GetSampleArrayData();

                var dataView = ComponentCreation.CreateDataView(Env,
                                                                new TestData[] {
                    new TestData()
                    {
                        data_0 = samplevector
                    }
                });

                var onnx = new OnnxTransformer(env, modelFile, "data_0", "softmaxout_1").Transform(dataView);

                onnx.Schema.TryGetColumnIndex("softmaxout_1", out int score);

                using (var curs = onnx.GetRowCursor(onnx.Schema["softmaxout_1"]))
                {
                    var getScores = curs.GetGetter <VBuffer <float> >(score);
                    var buffer    = default(VBuffer <float>);
                    while (curs.MoveNext())
                    {
                        getScores(ref buffer);
                        Assert.Equal(1000, buffer.Length);
                    }
                }
            }
        }