Example #1
0
        static void TrainMultiToRankerPredictorDense(string modelName, int threads, bool checkError,
                                                     bool singleColumn, bool shift, bool useUint)
        {
            var methodName = string.Format("{0}-{1}-V{2}-T{3}-S{4}", System.Reflection.MethodBase.GetCurrentMethod().Name,
                                           modelName, singleColumn ? "C" : "Vec", threads, shift ? "shift" : "std");
            var dataFilePath = shift
                ? FileHelper.GetTestFile("mc_iris_shift.txt")
                : FileHelper.GetTestFile("mc_iris.txt");
            var trainFile        = FileHelper.GetOutputFile("iris_train.idv", methodName);
            var testFile         = FileHelper.GetOutputFile("iris_test.idv", methodName);
            var outModelFilePath = FileHelper.GetOutputFile("outModelFilePath.zip", methodName);
            var outData          = FileHelper.GetOutputFile("outData1.txt", methodName);
            var outData2         = FileHelper.GetOutputFile("outData2.txt", methodName);

            using (var env = EnvHelper.NewTestEnvironment(conc: threads == 1 ? 1 : 0))
            {
                string labelType    = useUint ? "U4[0-2]" : "R4";
                string loadSettings = string.Format("Text{{col=Label:{0}:0 col=Slength:R4:1 col=Swidth:R4:2 col=Plength:R4:3 col=Pwidth:R4:4 header=+}}", labelType);
                var    loader       = env.CreateLoader(loadSettings, new MultiFileSource(dataFilePath));

                var    concat      = env.CreateTransform("Concat{col=Features:Slength,Swidth}", loader);
                var    roles       = env.CreateExamples(concat, "Features", "Label");
                string modelDef    = threads <= 0 ? modelName : string.Format("{0}{{t={1}}}", modelName, threads);
                string additionnal = modelName.Contains("xgbrk") ? " u4=+" : "";
                string iova        = string.Format("iovark{{p={0} sc={1}{2}}}", modelDef, singleColumn ? "+" : "-", additionnal);
                var    trainer     = env.CreateTrainer(iova);
                using (var ch = env.Start("train"))
                {
                    var predictor = trainer.Train(env, ch, roles);
                    TestTrainerHelper.FinalizeSerializationTest(env, outModelFilePath, predictor, roles, outData, outData2,
                                                                PredictionKind.MultiClassClassification, checkError, ratio: 0.1f);
                }
            }
        }
Example #2
0
        private void StartUp()
        {
            try
            {
                var factory = new CoreClientFactory(_loggerRef)
                              .SetEnv("Dev")
                              .SetApplication(Assembly.GetExecutingAssembly())
                              .SetProtocols(WcfConst.AllProtocolsStr)
                              .SetServers("localhost");
                var client = factory.Create();
                _clientRef = Reference <ICoreClient> .Create(client);

                _cache = _clientRef.Target.CreateCache();
                //_cache.SubscribeInfoOnly<Algorithm>(Expr.ALL);
                // init controls
                // - form title
                var env = _clientRef.Target.ClientInfo.ConfigEnv;
                Text += String.Format(" ({0})", EnvHelper.EnvName(env));
                // - server port
                int defaultPort = EnvHelper.SvcPort(env, SvcId.GridSwitch);
                chkChangePort.Text = String.Format("Change server port from default ({0}) to:", defaultPort);
                _syncContext.Post(OnClientStateChange, new CoreStateChange(CoreStateEnum.Initial, _clientRef.Target.CoreState));
                _clientRef.Target.OnStateChange += _Client_OnStateChange;
            }
            catch (Exception excp)
            {
                _loggerRef.Target.Log(excp);
            }
        }
Example #3
0
        private void StartUp()
        {
            // default configuration
            EnvId env = IntClient.Target.ClientInfo.ConfigEnv;

            // derived configuration
            _serverPort = OtherSettings.GetValue(WFPropName.Port, EnvHelper.SvcPort(env, SvcId.GridSwitch));
            _nodeId     = OtherSettings.GetValue(WFPropName.NodeId, Guid.NewGuid());
            // create router/worker worksteps
            Routers = GridWorksteps.Create().ToArray();
            Workers = GridWorksteps.Create().ToArray();
            // start discovery endpoint
            string endpoint = ServiceHelper.FormatEndpoint(WcfConst.NetTcp, _serverPort);
            string svcName  = EnvHelper.SvcPrefix(SvcId.GridSwitch);

            _discoServerHost = new CustomServiceHost <IDiscoverV111, DiscoverRecverV111>(
                Logger, new DiscoverRecverV111(this), endpoint,
                svcName, typeof(IDiscoverV111).Name, true);
            IWorkContext context = new WorkContext(Logger, IntClient.Target, HostInstance, ServerInstance);

            // start gridswitch endpoints - routers before workers
            foreach (IWorkstep router in Routers)
            {
                router.Initialise(context);
                router.EnableGrid(GridLevel.Router, _nodeId, _serverPort, null);
            }
            foreach (IWorkstep worker in Workers)
            {
                worker.Initialise(context);
                worker.EnableGrid(GridLevel.Worker, _nodeId, _serverPort, null);
            }
        }
        public LEMngIntegrationTests()
        {
            this.Services = DiHelper.GetServiceProvider();
            Settings      = Services.GetService <IOptions <AppSettings> >().Value;

            EnvHelper.SetAzureAccessEnvironment();
        }
Example #5
0
 private void PreCommand()
 {
     EnvHelper.GetGitConfig();
     EnvHelper.GetBranchName();
     EnvHelper.GetStash();
     FileHelper.SaveAllFiles(_dte);
 }
Example #6
0
        unsafe public InvokeData ReceiveInvoke(IDictionary initialEnvironmentVariables, RuntimeReceiveInvokeBuffers buffers)
        {
            Console.Error.WriteLine($"START RequestId: {context.RequestId} Version: {context.FunctionVersion}");

            invoked = true;

            curSBSharedMem = new SBSharedMem(sharedMem);
            return(new InvokeData(curSBSharedMem)
            {
                RequestId = context.RequestId,
                AwsCredentials = new AwsCredentials
                {
                    AccessKeyId = EnvHelper.GetOrDefault("AWS_ACCESS_KEY_ID", "SOME_ACCESS_KEY_ID"),
                    SecretAccessKey = EnvHelper.GetOrDefault("AWS_SECRET_ACCESS_KEY", "SOME_SECRET_ACCESS_KEY"),
                    SessionToken = System.Environment.GetEnvironmentVariable("AWS_SESSION_TOKEN")
                },
                XAmznTraceId = EnvHelper.GetOrDefault("_X_AMZN_TRACE_ID", ""),
                InputStream = context.InputStream,
                OutputStream = new UnmanagedMemoryStream(curSBSharedMem.EventBody, 0, SBSharedMem.SizeOfEventBody, FileAccess.Write),
                LambdaContextInternal = new LambdaContextInternal(
                    context.RemainingTime,
                    SendCustomerLogMessage,
                    new Lazy <CognitoClientContextInternal>(),
                    context.RequestId,
                    new Lazy <string>(context.Arn),
                    new Lazy <string>(string.Empty),
                    new Lazy <string>(string.Empty),
                    initialEnvironmentVariables
                    )
            });
        }
Example #7
0
        public void TestTagTrainOrScoreTransformCustomScorer()
        {
            var methodName       = System.Reflection.MethodBase.GetCurrentMethod().Name;
            var dataFilePath     = FileHelper.GetTestFile("mc_iris.txt");
            var outModelFilePath = FileHelper.GetOutputFile("outModelFilePath.zip", methodName);
            var outData          = FileHelper.GetOutputFile("outData1.txt", methodName);

            using (var env = EnvHelper.NewTestEnvironment())
            {
                var loader = env.CreateLoader("Text{col=Label:R4:0 col=Slength:R4:1 col=Swidth:R4:2 col=Plength:R4:3 col=Pwidth:R4:4 header=-}",
                                              new MultiFileSource(dataFilePath));

                using (var pipe = new ScikitPipeline(new[] {
                    "Concat{col=Feature:Slength,Swidth}",
                    "TagTrainScore{tr=iova{p=ft{nl=10 iter=1}} lab=Label feat=Feature tag=model scorer=MultiClassClassifierScorer{ex=AA}}"
                }, host: env))
                {
                    pipe.Train(loader);
                    var pred = pipe.Predict(loader);
                    var df   = DataFrameIO.ReadView(pred);
                    Assert.AreEqual(df.Shape, new Tuple <int, int>(150, 11));
                    var dfs = df.Head().ToString();
                    Assert.IsTrue(dfs.StartsWith("Label,Slength,Swidth,Plength,Pwidth,Feature.0,Feature.1,PredictedLabelAA,ScoreAA.0,ScoreAA.1,ScoreAA.2"));
                }
            }
        }
        public MainLauncherWindow()
        {
            InitializeComponent();

            fileService             = new WinFileService();
            dialogService           = new WinDialogService();
            freeLanDetectionService = new FreeLanDetectionService(fileService, dialogService);
            windowsServices         = new WindowsServices();
            networkAdapters         = new NetworkAdapters();
            freeLanService          = new FreeLanService(
                windowsServices,
                freeLanDetectionService,
                dialogService
                );



            if (!EnvHelper.IsAdministrator())
            {
                MessageBox.Show("To use this application you will need administrator privileges!");
                System.Environment.Exit(0);
            }

            UpdateWindow();
        }
Example #9
0
        public void TestTagViewTransform()
        {
            using (var host = EnvHelper.NewTestEnvironment())
            {
                var inputs = new[] {
                    new ExampleA()
                    {
                        X = new float[] { 0, 1 }
                    },
                    new ExampleA()
                    {
                        X = new float[] { 2, 3 }
                    }
                };

                IDataView loader = host.CreateStreamingDataView(inputs);
                var       data   = host.CreateTransform("Scaler{col=X1:X}", loader);
                data = host.CreateTransform("tag{t=memory}", data);

                var methodName       = System.Reflection.MethodBase.GetCurrentMethod().Name;
                var outModelFilePath = FileHelper.GetOutputFile("outModelFilePath.zip", methodName);
                var outData          = FileHelper.GetOutputFile("outData.txt", methodName);
                var outData2         = FileHelper.GetOutputFile("outData2.txt", methodName);
                TestTransformHelper.SerializationTestTransform(host, outModelFilePath, data, loader, outData, outData2);
            }
        }
Example #10
0
        public void TestChainTransformSerialize()
        {
            using (var host = EnvHelper.NewTestEnvironment())
            {
                var inputs = new[] {
                    new ExampleA()
                    {
                        X = new float[] { 1, 10, 100 }
                    },
                    new ExampleA()
                    {
                        X = new float[] { 2, 3, 5 }
                    }
                };

                IDataView      loader = host.CreateStreamingDataView(inputs);
                IDataTransform data   = host.CreateTransform("Scaler{col=X4:X}", loader);
                data = host.CreateTransform("ChainTrans{ xf1=Scaler{col=X2:X} xf2=Poly{col=X3:X2} }", data);

                // We create a specific folder in build/UnitTest which will contain the output.
                var methodName       = System.Reflection.MethodBase.GetCurrentMethod().Name;
                var outModelFilePath = FileHelper.GetOutputFile("outModelFilePath.zip", methodName);
                var outData          = FileHelper.GetOutputFile("outData.txt", methodName);
                var outData2         = FileHelper.GetOutputFile("outData2.txt", methodName);
                TestTransformHelper.SerializationTestTransform(host, outModelFilePath, data, loader, outData, outData2);
            }
        }
        static void TrainPrePostProcessTrainer(string modelName, bool checkError, int threads, bool addpre)
        {
            var methodName       = string.Format("{0}-{1}-T{2}", System.Reflection.MethodBase.GetCurrentMethod().Name, modelName, threads);
            var dataFilePath     = FileHelper.GetTestFile("mc_iris.txt");
            var trainFile        = FileHelper.GetOutputFile("iris_train.idv", methodName);
            var testFile         = FileHelper.GetOutputFile("iris_test.idv", methodName);
            var outModelFilePath = FileHelper.GetOutputFile("outModelFilePath.zip", methodName);
            var outData          = FileHelper.GetOutputFile("outData1.txt", methodName);
            var outData2         = FileHelper.GetOutputFile("outData2.txt", methodName);

            using (var env = EnvHelper.NewTestEnvironment(conc: threads == 1 ? 1 : 0))
            {
                var loader = env.CreateLoader("Text{col=Label:R4:0 col=Slength:R4:1 col=Swidth:R4:2 col=Plength:R4:3 col=Pwidth:R4:4 header=+}",
                                              new MultiFileSource(dataFilePath));
                var xf = env.CreateTransform("shuffle{force=+}", loader); // We shuffle because Iris is order by label.
                xf = env.CreateTransform("concat{col=RawFeatures:Slength,Swidth}", xf);
                var roles = env.CreateExamples(xf, "RawFeatures", "Label");

                string pred = addpre ? "PrePost{pre=poly{col=Feature:RawFeatures} p=___ pret=Take{n=80}}" : "PrePost{p=___ pret=Take{n=80}}";
                pred = pred.Replace("___", modelName);
                var trainer = env.CreateTrainer(pred);
                using (var ch = env.Start("Train"))
                {
                    var predictor = trainer.Train(env, ch, roles);
                    TestTrainerHelper.FinalizeSerializationTest(env, outModelFilePath, predictor, roles, outData, outData2,
                                                                PredictionKind.MultiClassClassification, checkError, ratio: 0.15f);
                }
            }
        }
Example #12
0
        public static void TrainMultiToRankerPredictorSparse(bool singleColumn, bool checkError)
        {
            var methodName = string.Format("{0}-{1}-V{2}", System.Reflection.MethodBase.GetCurrentMethod().Name,
                                           "lr", singleColumn ? "C" : "Vec");
            var trainFile        = FileHelper.GetTestFile("Train-28x28_small.txt");
            var testFile         = FileHelper.GetTestFile("Test-28x28_small.txt");
            var outModelFilePath = FileHelper.GetOutputFile("outModelFilePath.zip", methodName);
            var outData          = FileHelper.GetOutputFile("outData1.txt", methodName);
            var outData2         = FileHelper.GetOutputFile("outData2.txt", methodName);

            using (var env = EnvHelper.NewTestEnvironment())
            {
                var loader = env.CreateLoader("Text", new MultiFileSource(trainFile));
                var roles  = env.CreateExamples(loader, "Features", "Label");
                var iova   = string.Format("iovark{{p=ftrank sc={0}}}", singleColumn ? "+" : "-");
                loader = env.CreateLoader("Text", new MultiFileSource(testFile));
                var trainer = env.CreateTrainer(iova);
                using (var ch = env.Start("train"))
                {
                    var predictor = trainer.Train(env, ch, roles);
                    TestTrainerHelper.FinalizeSerializationTest(env, outModelFilePath, predictor, roles, outData, outData2,
                                                                PredictionKind.MultiClassClassification, checkError, ratio: 0.1f);
                }
            }
        }
Example #13
0
        public void TestI_ResampleSerialization()
        {
            var methodName         = System.Reflection.MethodBase.GetCurrentMethod().Name;
            var dataFilePath       = FileHelper.GetTestFile("iris.txt");
            var outputDataFilePath = FileHelper.GetOutputFile("outputDataFilePath.txt", methodName);

            using (var env = EnvHelper.NewTestEnvironment(conc: 1))
            {
                var loader = env.CreateLoader("Text{col=Label:R4:0 col=Slength:R4:1 col=Swidth:R4:2 col=Plength:R4:3 " +
                                              "col=Pwidth:R4:4 header=+ sep=tab}",
                                              new MultiFileSource(dataFilePath));
                var sorted = env.CreateTransform("resample{lambda=1 c=-}", loader);
                DataViewHelper.ToCsv(env, sorted, outputDataFilePath);

                var lines = File.ReadAllLines(outputDataFilePath);
                int begin = 0;
                for (; begin < lines.Length; ++begin)
                {
                    if (lines[begin].StartsWith("Label"))
                    {
                        break;
                    }
                }
                lines = lines.Skip(begin).ToArray();
                var linesSorted = lines.OrderBy(c => c).ToArray();
                for (int i = 1; i < linesSorted.Length; ++i)
                {
                    if (linesSorted[i - 1][0] > linesSorted[i][0])
                    {
                        throw new Exception("The output is not sorted.");
                    }
                }
            }
        }
Example #14
0
        public static IServiceCollection AddMvcApi(this IServiceCollection services)
        {
            if (!EnvHelper.IsDevelopment())
            {
                services.AddResponseCaching();
                services.AddElectMinResponse();
            }

            services.AddSingleton<IActionContextAccessor, ActionContextAccessor>();
            services.AddSingleton<ITempDataProvider, CookieTempDataProvider>();

            // Validation Filters

            services.AddScoped<ApiValidationActionFilterAttribute>();

            // Exception Filters

            services.AddScoped<ApiExceptionFilterAttribute>();
            services.AddScoped<RootExceptionFilterAttribute>();

            // MVC

            var mvcBuilder = services.AddMvc(options =>
            {
                options.RespectBrowserAcceptHeader = false; // false by default
                options.Filters.Add(new ProducesAttribute(ContentType.Json));
                options.Filters.Add(new ProducesAttribute(ContentType.Xml));
            });

            // Xml Config
            mvcBuilder.AddXmlDataContractSerializerFormatters();

            // Json Config
            mvcBuilder.AddJsonOptions(options =>
            {
                options.SerializerSettings.ReferenceLoopHandling =
                    Formatting.JsonSerializerSettings.ReferenceLoopHandling;
                options.SerializerSettings.NullValueHandling = Formatting.JsonSerializerSettings.NullValueHandling;
                options.SerializerSettings.Formatting = Formatting.JsonSerializerSettings.Formatting;
                options.SerializerSettings.ContractResolver = Formatting.JsonSerializerSettings.ContractResolver;
                options.SerializerSettings.DateFormatString = Formatting.JsonSerializerSettings.DateFormatString;
                options.SerializerSettings.Culture = Formatting.JsonSerializerSettings.Culture;
            });

            // Validation
            mvcBuilder.AddViewOptions(options => { options.HtmlHelperOptions.ClientValidationEnabled = true; });
            mvcBuilder.AddFluentValidation(fvc => { fvc.RegisterValidatorsFromAssemblyContaining<IValidator>(); });

            // AreaName Support
            services.Configure<RazorViewEngineOptions>(options =>
            {
                options.AreaViewLocationFormats.Clear();
                options.AreaViewLocationFormats.Add("/" + AreaFolderName + "/{2}/Views/{1}/{0}.cshtml");
                options.AreaViewLocationFormats.Add("/" + AreaFolderName + "/{2}/Views/Shared/{0}.cshtml");
                options.AreaViewLocationFormats.Add("/Views/Shared/{0}.cshtml");
            });

            return services;
        }
        private IDataScorerTransform _TrainSentiment()
        {
            bool normalize = true;

            var args = new TextLoader.Arguments()
            {
                Separator = "tab",
                HasHeader = true,
                Column    = new[] {
                    new TextLoader.Column("Label", DataKind.BL, 0),
                    new TextLoader.Column("SentimentText", DataKind.Text, 1)
                }
            };

            var args2 = new TextFeaturizingEstimator.Arguments()
            {
                Column = new TextFeaturizingEstimator.Column
                {
                    Name   = "Features",
                    Source = new[] { "SentimentText" }
                },
                KeepDiacritics               = false,
                KeepPunctuations             = false,
                TextCase                     = TextNormalizingEstimator.CaseNormalizationMode.Lower,
                OutputTokens                 = true,
                UsePredefinedStopWordRemover = true,
                VectorNormalizer             = normalize ? TextFeaturizingEstimator.TextNormKind.L2 : TextFeaturizingEstimator.TextNormKind.None,
                CharFeatureExtractor         = new NgramExtractorTransform.NgramExtractorArguments()
                {
                    NgramLength = 3, AllLengths = false
                },
                WordFeatureExtractor = new NgramExtractorTransform.NgramExtractorArguments()
                {
                    NgramLength = 2, AllLengths = true
                },
            };

            var trainFilename = FileHelper.GetTestFile("wikipedia-detox-250-line-data.tsv");

            using (var env = EnvHelper.NewTestEnvironment(seed: 1, conc: 1))
            {
                // Pipeline
                var loader = new TextLoader(env, args).Read(new MultiFileSource(trainFilename));
                var trans  = TextFeaturizingEstimator.Create(env, args2, loader);

                // Train
                var trainer = new SdcaBinaryTrainer(env, new SdcaBinaryTrainer.Arguments
                {
                    NumThreads = 1
                });

                var cached    = new CacheDataView(env, trans, prefetch: null);
                var predictor = trainer.Fit(cached);

                var scoreRoles = new RoleMappedData(trans, label: "Label", feature: "Features");
                var trainRoles = new RoleMappedData(cached, label: "Label", feature: "Features");
                return(ScoreUtils.GetScorer(predictor.Model, scoreRoles, env, trainRoles.Schema));
            }
        }
Example #16
0
        public RabbitMQLogger(RabbitMQLoggerProvider rabbitMQLoggerProvider, string categoryName)
        {
            // Console.WriteLine("RabbitMQLogger - INIT LOGGER");

            this._RabbitMQLoggerProvider = rabbitMQLoggerProvider;
            this.categoryName            = categoryName;
            this.envModel = EnvHelper.GetEnv();
        }
Example #17
0
 public ContextMenuCommands(OleMenuCommandService mcs, DTE dte,
                            OptionPageGrid generalOptions, EnvHelper envHelper)
 {
     _dte            = dte;
     _mcs            = mcs;
     _generalOptions = generalOptions;
     _envHelper      = envHelper;
 }
Example #18
0
        private static async Task Initialize()
        {
            priceDb = new CosmosPriceRepository(EnvHelper.GetEnvironmentVariable("CosmosConnStr"));
            itemDb  = new CosmosItemRepository(EnvHelper.GetEnvironmentVariable("CosmosConnStr"));
            items   = await itemDb.GetAllItemsAsync();

            emailSender = new SendGridEmailService();
        }
            public PredictionEngineExample(string modelName)
            {
                _env = EnvHelper.NewTestEnvironment();
                var transformer = TransformerChain.LoadFromLegacy(_env, File.OpenRead(modelName));
                var model       = new ModelOperationsCatalog(_env);

                _predictor = model.CreatePredictionEngine <FloatVectorInput, FloatOutput>(transformer);
            }
Example #20
0
        /// <summary>
        /// 生产外发字符串
        /// </summary>
        /// <returns></returns>

        public string ToLogstashMessage()
        {
            string strPublishMessage = $"<{this.LogTime}> <{this.LogLevel}> <{this.LogId}> <{this.LogAttr}> <{this.LogCategory}> ";

            strPublishMessage += $"<{ EnvHelper.GetEnv().APP_BUILD_NAME}> <{EnvHelper.GetLocalHostName()}> <{EnvHelper.GetLocalIPV4()}> <{this.LogMsg}>";

            return(strPublishMessage);
        }
Example #21
0
 public GitSVNMenuCommands(OleMenuCommandService mcs, DTE dte,
                           OptionPageGrid options, EnvHelper envHelper)
 {
     _mcs       = mcs;
     _options   = options;
     _dte       = dte;
     _envHelper = envHelper;
 }
        public void TestDBScanTransform()
        {
            var methodName         = System.Reflection.MethodBase.GetCurrentMethod().Name;
            var dataFilePath       = FileHelper.GetTestFile("three_classes_2d.txt");
            var outputDataFilePath = FileHelper.GetOutputFile("outputDataFilePath.txt", methodName);
            var outModelFilePath   = FileHelper.GetOutputFile("outModelFilePath.zip", methodName);

            using (var env = EnvHelper.NewTestEnvironment(conc: 1))
            {
                //var loader = env.CreateLoader("text{col=RowId:I4:0 col=Features:R4:1-2 header=+}", new MultiFileSource(dataFilePath));
                var loader = TextLoader.Create(env, new TextLoader.Arguments()
                {
                    HasHeader = true,
                    Column    = new[] { TextLoader.Column.Parse("RowId:R4:0"),
                                        TextLoader.Column.Parse("Features:R4:1-2") }
                },
                                               new MultiFileSource(dataFilePath));
                var xf = env.CreateTransform("DBScan{col=Features}", loader);

                string schema = SchemaHelper.ToString(xf.Schema);
                if (string.IsNullOrEmpty(schema))
                {
                    throw new Exception("Schema is null.");
                }
                if (!schema.Contains("Cluster"))
                {
                    throw new Exception("Schema does not contain Cluster.");
                }
                if (!schema.Contains("Score"))
                {
                    throw new Exception("Schema does not contain Score.");
                }

                StreamHelper.SaveModel(env, xf, outModelFilePath);

                var saver = env.CreateSaver("Text{header=- schema=-}");
                using (var fs2 = File.Create(outputDataFilePath))
                    saver.SaveData(fs2, TestTransformHelper.AddFlatteningTransform(env, xf),
                                   StreamHelper.GetColumnsIndex(xf.Schema, new[] { "Features", "ClusterId", "Score" }));

                // Checking the values.
                var lines = File.ReadAllLines(outputDataFilePath).Select(c => c.Split('\t')).Where(c => c.Length == 4);
                if (!lines.Any())
                {
                    throw new Exception(string.Format("The output file is empty or not containing three columns '{0}'", outputDataFilePath));
                }
                var clusters = lines.Select(c => c[1]).Distinct();
                if (clusters.Count() <= 1)
                {
                    throw new Exception("Only one cluster, this is unexpected.");
                }

                // Serialization.
                var outData  = FileHelper.GetOutputFile("outData1.txt", methodName);
                var outData2 = FileHelper.GetOutputFile("outData2.txt", methodName);
                TestTransformHelper.SerializationTestTransform(env, outModelFilePath, xf, loader, outData, outData2);
            }
        }
        public void TestSelectTagContactViewTransform()
        {
            var methodName = System.Reflection.MethodBase.GetCurrentMethod().Name;
            var firstData  = FileHelper.GetOutputFile("first.idv", methodName);
            var outData    = FileHelper.GetOutputFile("outData.txt", methodName);
            var outData2   = FileHelper.GetOutputFile("outData2.txt", methodName);

            using (var env = EnvHelper.NewTestEnvironment())
            {
                var inputs = new[] {
                    new ExampleA()
                    {
                        X = new float[] { 0, 1, 4 }
                    },
                    new ExampleA()
                    {
                        X = new float[] { 2, 3, 7 }
                    }
                };

                // Create IDV
                IDataView loader = env.CreateStreamingDataView(inputs);
                var       saver  = ComponentCreation.CreateSaver(env, "binary");
                using (var ch = env.Start("save"))
                {
                    using (var fs0 = env.CreateOutputFile(firstData))
                        DataSaverUtils.SaveDataView(ch, saver, loader, fs0, true);

                    // Create parallel pipeline
                    loader = env.CreateStreamingDataView(inputs);
                    var data = env.CreateTransform("Scaler{col=X1:X}", loader);
                    data = env.CreateTransform(string.Format("selecttag{{t=first s=second f={0}}}", firstData), data);
                    data = env.CreateTransform("Scaler{col=X1:X}", data);
                    var merged = env.CreateTransform("append{t=first}", data);

                    // Save the outcome
                    var text    = env.CreateSaver("Text");
                    var columns = new int[merged.Schema.Count];
                    for (int i = 0; i < columns.Length; ++i)
                    {
                        columns[i] = i;
                    }
                    using (var fs2 = File.Create(outData))
                        text.SaveData(fs2, merged, columns);

                    // Final checking
                    var lines = File.ReadAllLines(outData);
                    if (!lines.Any())
                    {
                        throw new Exception("Empty file.");
                    }
                    if (lines.Length != 9)
                    {
                        throw new Exception("Some lines are missing.");
                    }
                }
            }
        }
Example #24
0
        public void TestScikitAPI_SimplePredictor()
        {
            var inputs = new[] {
                new ExampleA()
                {
                    X = new float[] { 1, 10, 100 }
                },
                new ExampleA()
                {
                    X = new float[] { 2, 3, 5 }
                },
                new ExampleA()
                {
                    X = new float[] { 2, 4, 5 }
                },
                new ExampleA()
                {
                    X = new float[] { 2, 4, 7 }
                },
            };

            var inputs2 = new[] {
                new ExampleA()
                {
                    X = new float[] { -1, -10, -100 }
                },
                new ExampleA()
                {
                    X = new float[] { -2, -3, -5 }
                },
                new ExampleA()
                {
                    X = new float[] { 3, 4, 5 }
                },
                new ExampleA()
                {
                    X = new float[] { 3, 4, 7 }
                },
            };

            /*using (*/
            var host = EnvHelper.NewTestEnvironment(conc: 1);
            {
                var data = DataViewConstructionUtils.CreateFromEnumerable(host, inputs);
                using (var pipe = new ScikitPipeline(new[] { "poly{col=X}" }, "km{k=2}", host))
                {
                    var predictor = pipe.Train(data, feature: "X");
                    Assert.IsTrue(predictor != null);
                    var data2       = new StreamingDataFrame(DataViewConstructionUtils.CreateFromEnumerable(host, inputs2));
                    var predictions = pipe.Predict(data2);
                    var df          = DataFrameIO.ReadView(predictions);
                    Assert.AreEqual(df.Shape, new Tuple <int, int>(4, 12));
                    var dfs  = df.ToString();
                    var dfs2 = dfs.Replace("\n", ";");
                    Assert.IsTrue(dfs2.StartsWith("X.0,X.1,X.2,X.3,X.4,X.5,X.6,X.7,X.8,PredictedLabel,Score.0,Score.1;-1,-10,-100,1,10,100,100,1000,10000"));
                }
            }
        }
        unsafe InvokeData ILambdaRuntime.ReceiveInvoke(IDictionary initialEnvironmentVariables, RuntimeReceiveInvokeBuffers buffers)
        {
            if (!invoked)
            {
                receivedInvokeAt = DateTimeOffset.Now;
                invoked          = true;
            }
            else
            {
                logs = "";
            }
            var result = client.GetAsync("http://127.0.0.1:9001/2018-06-01/runtime/invocation/next").Result;

            if (result.StatusCode != HttpStatusCode.OK)
            {
                throw new Exception("Got a bad response from the bootstrap");
            }

            var requestId       = result.Headers.GetValues("Lambda-Runtime-Aws-Request-Id").First();
            var deadlineMs      = result.Headers.GetValues("Lambda-Runtime-Deadline-Ms").First();
            var functionArn     = result.Headers.GetValues("Lambda-Runtime-Invoked-Function-Arn").First();
            var xAmznTraceId    = result.Headers.GetValues("Lambda-Runtime-Trace-Id").First();
            var clientContext   = HeaderHelper.GetFirstOrDefault(result.Headers, "Lambda-Runtime-Client-Context");
            var cognitoIdentity = HeaderHelper.GetFirstOrDefault(result.Headers, "Lambda-Runtime-Cognito-Identity");

            logTail = HeaderHelper.GetFirstOrDefault(result.Headers, "Docker-Lambda-Log-Type") == "Tail";

            var body = result.Content.ReadAsStringAsync().Result;

            context.RequestId  = requestId;
            context.DeadlineMs = long.Parse(deadlineMs);
            context.Body       = body;

            curSBSharedMem = new SBSharedMem(sharedMem);
            return(new InvokeData(curSBSharedMem)
            {
                RequestId = context.RequestId,
                AwsCredentials = new AwsCredentials
                {
                    AccessKeyId = EnvHelper.GetOrDefault("AWS_ACCESS_KEY_ID", "SOME_ACCESS_KEY_ID"),
                    SecretAccessKey = EnvHelper.GetOrDefault("AWS_SECRET_ACCESS_KEY", "SOME_SECRET_ACCESS_KEY"),
                    SessionToken = System.Environment.GetEnvironmentVariable("AWS_SESSION_TOKEN")
                },
                XAmznTraceId = xAmznTraceId,
                InputStream = context.InputStream,
                OutputStream = new UnmanagedMemoryStream(curSBSharedMem.EventBody, 0, SBSharedMem.SizeOfEventBody, FileAccess.Write),
                LambdaContextInternal = new LambdaContextInternal(
                    context.RemainingTime,
                    SendCustomerLogMessage,
                    GetCognitoClientContextInternalLazy(clientContext),
                    context.RequestId,
                    new Lazy <string>(context.Arn),
                    GetCognitoIdentityIdLazy(cognitoIdentity),
                    GetCognitoIdentityPoolIdLazy(cognitoIdentity),
                    initialEnvironmentVariables
                    )
            });
        }
Example #26
0
 public void SolutionEvents_Opened()
 {
     EnvHelper.GetTortoiseGitProc();
     EnvHelper.GetGit();
     EnvHelper.GetSolutionDir(_dte);
     EnvHelper.GetGitConfig();
     EnvHelper.GetBranchName();
     EnvHelper.GetStash();
 }
Example #27
0
        private static IDataScorerTransform _TrainSentiment()
        {
            bool normalize = true;

            var args = new TextLoader.Options()
            {
                Separators = new[] { '\t' },
                HasHeader  = true,
                Columns    = new[]
                {
                    new TextLoader.Column("Label", DataKind.Boolean, 0),
                    new TextLoader.Column("SentimentText", DataKind.String, 1)
                }
            };

            var args2 = new TextFeaturizingEstimator.Options()
            {
                KeepDiacritics         = false,
                KeepPunctuations       = false,
                CaseMode               = TextNormalizingEstimator.CaseMode.Lower,
                OutputTokensColumnName = "tokens",
                Norm = normalize ? TextFeaturizingEstimator.NormFunction.L2 : TextFeaturizingEstimator.NormFunction.None,
                CharFeatureExtractor = new WordBagEstimator.Options()
                {
                    NgramLength = 3, UseAllLengths = false
                },
                WordFeatureExtractor = new WordBagEstimator.Options()
                {
                    NgramLength = 2, UseAllLengths = true
                },
            };

            var trainFilename = FileHelper.GetTestFile("wikipedia-detox-250-line-data.tsv");

            /*using (*/
            var env = EnvHelper.NewTestEnvironment(seed: 1, conc: 1);
            {
                // Pipeline
                var loader = new TextLoader(env, args).Load(new MultiFileSource(trainFilename));

                var trans = TextFeaturizingEstimator.Create(env, args2, loader);

                // Train
                var trainer = new SdcaLogisticRegressionBinaryTrainer(env, new SdcaLogisticRegressionBinaryTrainer.Options
                {
                    LabelColumnName   = "Label",
                    FeatureColumnName = "Features"
                });

                var cached    = new Microsoft.ML.Data.CacheDataView(env, trans, prefetch: null);
                var predictor = trainer.Fit(cached);

                var trainRoles = new RoleMappedData(cached, label: "Label", feature: "Features");
                var scoreRoles = new RoleMappedData(trans, label: "Label", feature: "Features");
                return(ScoreUtils.GetScorer(predictor.Model, scoreRoles, env, trainRoles.Schema));
            }
        }
Example #28
0
        public StoreEngine(ILogger logger, ServerCfg serverCfg)
            : base(PartNames.Store, logger)
        {
            _inboundCallQueue = new AsyncThreadQueue(Logger);
            string connectionString = EnvHelper.FormatDbCfgStr(serverCfg.ModuleInfo.ConfigEnv, serverCfg.DbServer, serverCfg.DbPrefix);

            Logger.LogDebug("Connection String: {0}", connectionString);
            _state = new Guarded <StoreEngineState>(new StoreEngineState(serverCfg, connectionString));
        }
Example #29
0
        public void TrainTestPipelinePredictTransform()
        {
            var methodName       = System.Reflection.MethodBase.GetCurrentMethod().Name;
            var dataFilePath     = FileHelper.GetTestFile("mc_iris.txt");
            var outModelFilePath = FileHelper.GetOutputFile("outModelFilePath.zip", methodName);
            var outData          = FileHelper.GetOutputFile("outData1.txt", methodName);
            var outData2         = FileHelper.GetOutputFile("outData2.txt", methodName);

            using (var env = EnvHelper.NewTestEnvironment(conc: 1))
            {
                var loader = env.CreateLoader("Text{col=Label:R4:0 col=Slength:R4:1 col=Swidth:R4:2 col=Plength:R4:3 col=Pwidth:R4:4 header=+}",
                                              new MultiFileSource(dataFilePath));

                var pipe = env.CreateTransform("Concat{col=Features:Slength,Swidth}", loader);
                pipe = env.CreateTransform("SplitTrainTest{col=base tag=train tag=test}", pipe);
                pipe = env.CreateTransform("SelectTag{tag=unused selectTag=train}", pipe);
                pipe = env.CreateTransform(string.Format("TagTrainScore{{tag=trainP out={0} tr=mlr}}", outModelFilePath), pipe);
                pipe = env.CreateTransform("SelectTag{tag=scoredTrain selectTag=test}", pipe);
                pipe = env.CreateTransform("TagPredict{in=trainP}", pipe);

                string schema  = SchemaHelper.ToString(pipe.Schema);
                var    cursor  = pipe.GetRowCursor(i => true);
                string schema2 = SchemaHelper.ToString(cursor.Schema);
                if (schema != schema2)
                {
                    throw new Exception("Schema mismatch.");
                }
                long count = DataViewUtils.ComputeRowCount(pipe);
                if (count != 49)
                {
                    throw new Exception(string.Format("Unexpected number of rows {0}", count));
                }

                // Checks the outputs.
                var saver   = env.CreateSaver("Text");
                var columns = new string[pipe.Schema.Count];
                for (int i = 0; i < columns.Length; ++i)
                {
                    columns[i] = pipe.Schema[i].Name;
                }
                using (var fs2 = File.Create(outData))
                    saver.SaveData(fs2, pipe, StreamHelper.GetColumnsIndex(pipe.Schema));

                var lines = File.ReadAllLines(outData);
                if (lines.Length < 40)
                {
                    throw new Exception("Something is missing:" + string.Join("\n", lines));
                }
                if (lines.Length > 70)
                {
                    throw new Exception("Too much data:" + string.Join("\n", lines));
                }

                TestTransformHelper.SerializationTestTransform(env, outModelFilePath, pipe, loader, outData, outData2);
            }
        }
Example #30
0
            public PredictionEngineExample(string modelName)
            {
                _env = EnvHelper.NewTestEnvironment();

                var view = DataViewConstructionUtils.CreateFromEnumerable(_env, new FloatVectorInput[] { });
                var pipe = DataViewConstructionUtils.LoadPipeWithPredictor(_env, File.OpenRead(modelName),
                                                                           new EmptyDataView(_env, view.Schema));
                var transformer = new TransformWrapper(_env, pipe);

                _predictor = _env.CreatePredictionEngine <FloatVectorInput, FloatOutput>(transformer);
            }