public static async Task MultiThreadedLearning()
        {
            var example = new MyExample { Income = 40, Age = 25 };
            var label = new SimpleLabel { Label = 1 };

            var settings = new VowpalWabbitSettings
            {
                ParallelOptions = new ParallelOptions
                {
                    MaxDegreeOfParallelism = 16
                },
                ExampleCountPerRun = 2000,
                ExampleDistribution = VowpalWabbitExampleDistribution.RoundRobin
            };

            using (var vw = new VowpalWabbitThreadedLearning(settings))
            {
                using (var vwManaged = vw.Create<MyExample>())
                {
                    var prediction = await vwManaged.Learn(example, label, VowpalWabbitPredictionType.Scalar);
                }

                var saveModelTask = vw.SaveModel("m1.model");

                await vw.Complete();
                await saveModelTask;
            }
        }
        public static void AnnotationExample()
        {
            using (var vw = new VowpalWabbit<MyExample>(new VowpalWabbitSettings { EnableStringExampleGeneration = true }))
            {
                var ex = new MyExample { Income = 40, Age = 25 };
                var label = new SimpleLabel { Label = 1 };

                var str = vw.Serializer.Create(vw.Native).SerializeToString(ex, label);
                // 1 |p Income:4 |  Age25

                vw.Learn(ex, label);

                var prediction = vw.Predict(ex, VowpalWabbitPredictionType.Scalar);
            }
        }
 public override void EnterExample(VowpalWabbitParser.ExampleContext context)
 {
     this.label = null;
     this.example.Features.Clear();
 }
 public override void ExitLabel_simple(VowpalWabbitParser.Label_simpleContext context)
 {
     this.label = new SimpleLabel
     {
         Label = context.value.value
     };
 }