Example #1
0
        public static void TestMemoryLeak()
        {
            string outModelFile = "cb_adf_mem_leak.model";

            using (var vw = new VowpalWabbit <DataString, DataStringADF>("--cb_adf --rank_all"))
            {
                DataString[] sampleData = CreateStringCbAdfData(1000);
                foreach (DataString example in sampleData)
                {
                    vw.Learn(example, example.ActionDependentFeatures, example.SelectedActionIndex, example.Label);
                }
                vw.Native.SaveModel(outModelFile);
            }

            var vwModel = new VowpalWabbitModel(new VowpalWabbitSettings(string.Format("--quiet -t -i {0}", outModelFile))
            {
                MaxExampleCacheSize = 1024
            });
            var pool = new VowpalWabbitThreadedPrediction <DataString, DataStringADF>(vwModel);

            while (true)
            {
                vwModel = new VowpalWabbitModel(new VowpalWabbitSettings(string.Format("--quiet -t -i {0}", outModelFile))
                {
                    MaxExampleCacheSize = 1024
                });
                pool.UpdateModel(vwModel);
            }
        }
Example #2
0
        public void ThreadPoolNull()
        {
            using (var pool = new VowpalWabbitThreadedPrediction())
            {
                using (var vw = pool.GetOrCreate())
                {
                    Assert.IsNull(vw.Value);
                }

                pool.UpdateModel(new VowpalWabbitModel(string.Empty));

                using (var vw = pool.GetOrCreate())
                {
                    Assert.IsNotNull(vw.Value);
                }
            }
        }
Example #3
0
        public static void MultiThreadedPrediction()
        {
            var example = new MyExample { Income = 40, Age = 25 };

            var vwModel = new VowpalWabbitModel("-t -i m1.model");
            using (var pool = new VowpalWabbitThreadedPrediction<MyExample>(vwModel))
            {
                // thread-safe
                using (var vw = pool.GetOrCreate())
                {
                    // vw.Value is not thread-safe
                    vw.Value.Predict(example);
                }

                // thread-safe
                pool.UpdateModel(new VowpalWabbitModel("-t -i m2.model"));
            }
        }
        public static void MultiThreadedPrediction()
        {
            var example = new MyExample {
                Income = 40, Age = 25
            };

            var vwModel = new VowpalWabbitModel("-t -i m1.model");

            using (var pool = new VowpalWabbitThreadedPrediction <MyExample>(vwModel))
            {
                // thread-safe
                using (var vw = pool.GetOrCreate())
                {
                    // vw.Value is not thread-safe
                    vw.Value.Predict(example);
                }

                // thread-safe
                pool.UpdateModel(new VowpalWabbitModel("-t -i m2.model"));
            }
        }
Example #5
0
        public static void TestMemoryLeak()
        {
            string outModelFile = "cb_adf_mem_leak.model";
            using (var vw = new VowpalWabbit<DataString, DataStringADF>("--cb_adf --rank_all"))
            {
                DataString[] sampleData = CreateStringCbAdfData(1000);
                foreach (DataString example in sampleData)
                {
                    vw.Learn(example, example.ActionDependentFeatures, example.SelectedActionIndex, example.Label);
                }
                vw.Native.SaveModel(outModelFile);
            }

            var vwModel = new VowpalWabbitModel(new VowpalWabbitSettings(string.Format("--quiet -t -i {0}", outModelFile), maxExampleCacheSize: 1024));
            var pool = new VowpalWabbitThreadedPrediction<DataString, DataStringADF>(vwModel);

            while (true)
            {
                vwModel = new VowpalWabbitModel(new VowpalWabbitSettings(string.Format("--quiet -t -i {0}", outModelFile), maxExampleCacheSize: 1024));
                pool.UpdateModel(vwModel);
            }
        }
Example #6
0
        public void ThreadPoolNull()
        {
            using (var pool = new VowpalWabbitThreadedPrediction())
            {
                using (var vw = pool.GetOrCreate())
                {
                    Assert.IsNull(vw.Value);
                }

                pool.UpdateModel(new VowpalWabbitModel(string.Empty));

                using (var vw = pool.GetOrCreate())
                {
                    Assert.IsNotNull(vw.Value);
                }
            }
        }