public void TestBcLrSameModel() { var methodName = System.Reflection.MethodBase.GetCurrentMethod().Name; var output = FileHelper.GetOutputFile("bc-lr.zip", methodName); var name = FileHelper.GetOutputFile("bc.txt", methodName); var df = DataFrameIO.ReadStr("Label,X1,X2,X3,X4,X5,X6,X7,X8,X9\n" + "0,0.1,1.1,2.1,3.1,4.1,5.1,6.2,7.4,-5\n" + "1,1.1,1.1,2.1,3.1,4.1,5.1,6.2,7.4,-5\n" + "0,2.1,1.1,3.1,3.1,-4.1,5.1,6.2,7.4,-5\n" + "1,3.1,1.1,4.1,3.1,4.1,-5.1,6.2,7.4,-5\n" + "0,4.1,1.1,2.1,3.1,4.1,5.1,6.2,-7.4,-5"); df.ToCsv(name); var cmd = string.Format("Train tr=lr data={0} out={1} loader=text{{col=Label:R4:0 col=Features:R4:1-* sep=, header=+}}", name, output); var stdout = new StringBuilder(); ILogWriter logout = new LogWriter((string s) => { stdout.Append(s); }); ILogWriter logerr = new LogWriter((string s) => { stdout.Append(s); }); /*using (*/ var env = new DelegateEnvironment(seed: 0, verbose: 2, outWriter: logout, errWriter: logerr); MamlHelper.MamlScript(cmd, false, env); var stout = stdout.ToString(); if (string.IsNullOrEmpty(stout)) { throw new Exception(stout); } }
public void TestMamlCodeGen() { var methodName = System.Reflection.MethodBase.GetCurrentMethod().Name; var data = FileHelper.GetTestFile("data_train_test.csv"); var output = FileHelper.GetOutputFile("model.zip", methodName); var bout = new StringBuilder(); var berr = new StringBuilder(); ILogWriter stout = new LogWriter(s => bout.Append(s)); ILogWriter sderr = new LogWriter(s => berr.Append(s)); var cmd = "chain cmd=train{\n" + "data = __INPUT__\n" + "loader = text{col=ItemID:I8:0 col=Sentiment:R4:1 col=SentimentSource:TX:2 \n" + " col=SentimentText:TX:3 col=RowNum:R4:4 \n" + " col=Label:BL:5 col=Train:BL:6 col=Small:BL:7 header=+ sep=,}\n" + "xf = concat {col=Features:RowNum,Sentiment}\n" + "tr = FastTreeBinaryClassification{iter=2}\n" + "out = __OUTPUT__} \n" + "cmd = codegen{in=__OUTPUT__ cs=ft_sentiment_cs}"; cmd = cmd.Replace("__INPUT__", data); cmd = cmd.Replace("__OUTPUT__", output); using (var env = new DelegateEnvironment(outWriter: stout, errWriter: sderr, verbose: 3)) { MamlHelper.MamlScript(cmd, false, env); var sout = bout.ToString(); Assert.IsTrue(sout.Length > 0); Assert.IsTrue(!sout.Contains("Unknown")); } }
public void TestMamlHelperKinds() { var kinds = MamlHelper.GetAllKinds(); Assert.IsTrue(kinds.Length > 0); Assert.IsTrue(kinds.Where(c => c == "trainer").Any()); Assert.IsTrue(kinds.Where(c => c == "datatransform").Any()); }
public void TestMamlHelperTrainer() { var trainers = MamlHelper.EnumerateComponents("trainer").ToArray(); Assert.IsTrue(trainers.Length > 0); var df = trainers.First().GetArgsAsDataFrame(); Assert.AreEqual(df.Shape.Item2, 4); }
public void TestMamlHelperHelp() { var sout = MamlHelper.MamlScript("?", true); if (!sout.Contains("Train")) { throw new Exception(sout); } }
public void TestMamlHelperParameter() { var dt = MamlHelper.EnumerateComponents("argument").ToArray(); var names = dt.Select(c => c.Name).ToArray(); Assert.IsTrue(dt.Length > 0); Assert.IsTrue(names.Length > 0); var df = dt.First().GetArgsAsDataFrame(); Assert.AreEqual(df.Shape.Item2, 4); Assert.IsTrue(names.Where(c => c.Contains("Ngram")).Any()); }
public void TestMamlHelperTest2_AssemblyList() { MamlHelper.TestScikitAPI2(); LinkHelper._Immutable(); var ass = MamlHelper.GetLoadedAssemblies(); Assert.IsTrue(ass.Length > 0); var methodName = System.Reflection.MethodBase.GetCurrentMethod().Name; var outData = FileHelper.GetOutputFile("loaded_assemblies.txt", methodName); File.WriteAllText(outData, string.Join("\n", ass)); }
public void TestHelpScorer() { var bout = new StringBuilder(); var berr = new StringBuilder(); ILogWriter stout = new LogWriter(s => bout.Append(s)); ILogWriter sderr = new LogWriter(s => berr.Append(s)); using (var env = new DelegateEnvironment(outWriter: stout, errWriter: sderr, verbose: 3)) { var cmd = "? MultiClassClassifierScorer"; MamlHelper.MamlScript(cmd, false, env); var sout = bout.ToString(); Assert.IsTrue(sout.Length > 0); Assert.IsTrue(!sout.Contains("Unknown")); } }
public void TestHelpModels() { foreach (var name in new[] { "Resample" }) { var bout = new StringBuilder(); var berr = new StringBuilder(); ILogWriter stout = new LogWriter(s => bout.Append(s)); ILogWriter sderr = new LogWriter(s => berr.Append(s)); using (var env = new DelegateEnvironment(outWriter: stout, errWriter: sderr, verbose: 3)) { var cmd = $"? {name}"; MamlHelper.MamlScript(cmd, false, env: env); var sout = bout.ToString(); var serr = berr.ToString(); Assert.IsTrue(!serr.Contains("Can't instantiate")); Assert.IsTrue(sout.Length > 0); Assert.IsTrue(!sout.Contains("Unknown")); } } }
public void TestCSGenerator() { var methodName = System.Reflection.MethodBase.GetCurrentMethod().Name; var basePath = FileHelper.GetOutputFile("CSharpApiExt.cs", methodName); var cmd = $"? generator=cs{{csFilename={basePath} exclude=System.CodeDom.dll}}"; var bout = new StringBuilder(); var berr = new StringBuilder(); ILogWriter stout = new LogWriter(s => bout.Append(s)); ILogWriter sderr = new LogWriter(s => berr.Append(s)); using (var env = new DelegateEnvironment(outWriter: stout, errWriter: sderr, verbose: 3)) { MamlHelper.MamlScript(cmd, false, env: env); var sout = bout.ToString(); var serr = berr.ToString(); Assert.IsTrue(sout.Length > 0); Assert.IsTrue(serr.Length == 0); Assert.IsFalse(sout.ToLower().Contains("usage")); } var text = File.ReadAllText(basePath); Assert.IsTrue(text.ToLower().Contains("nearest")); }
public void TestMamlHelperTest() { MamlHelper.TestScikitAPI(); }
public void TestMamlHelperCalibrator() { var cal = MamlHelper.EnumerateComponents("calibrator").ToArray(); Assert.IsTrue(cal.Length > 0); }
public static string[] GetAllKinds() { return(MamlHelper.GetAllKinds()); }
public static string MamlScript(string script, bool catch_output, int conc = 0, int verbose = 2, int sensitivity = -1, bool skipFailLoading = false) { ILogWriter logout, logerr; var stout = new StringBuilder(); var sterr = new StringBuilder(); if (catch_output) { logout = new LogWriter((string s) => { stout.Append(s); }); logerr = new LogWriter((string s) => { sterr.Append(s); }); } else { logout = new LogWriter((string s) => { Console.Write(s); }); logerr = new LogWriter((string s) => { Console.Error.Write(s); }); } using (var env = new DelegateEnvironment((int?)null, verbose, (MessageSensitivity)sensitivity, conc, logout, logerr)) { if (skipFailLoading) { try { ComponentHelper.AddStandardComponents(env); } catch (Exception e) { sterr.Append($"Unable to load an assembly due to {e.ToString()}.\n"); } } else { ComponentHelper.AddStandardComponents(env); } string res = null; try { res = MamlHelper.MamlScript(script, false, env); if (!string.IsNullOrEmpty(res)) { stout.Append(res); } } catch (InvalidOperationException e) { if (!string.IsNullOrEmpty(res)) { sterr.Append(res + "\n"); } sterr.Append($"[PyMamlHelper-InvalidOperationException] catch_output={catch_output}\n" + e.ToString() + "\n"); } catch (MamlException e) { if (!string.IsNullOrEmpty(res)) { sterr.Append(res + "\n"); } sterr.Append($"[PyMamlHelper-MamlException] catch_output={catch_output}\n" + e.ToString() + "\n"); } if (sterr.Length > 0) { return(string.Format("---OUT---\n{0}\n---ERR---\n{1}", stout.ToString(), sterr.ToString())); } else { return(stout.ToString()); } } }
public static MamlHelper.ComponentDescription[] ListOfComponents(string kind) { return(MamlHelper.EnumerateComponents(kind).ToArray()); }