public void Load(BinaryReader reader) { dim = reader.ReadInt32(); ws = reader.ReadInt32(); epoch = reader.ReadInt32(); minCount = reader.ReadInt32(); neg = reader.ReadInt32(); wordNgrams = reader.ReadInt32(); loss = (LossName)reader.ReadInt32(); model = (ModelName)reader.ReadInt32(); bucket = reader.ReadInt32(); minn = reader.ReadInt32(); maxn = reader.ReadInt32(); lrUpdateRate = reader.ReadInt32(); t = reader.ReadDouble(); }
protected string LossToString(LossName ln) { switch (ln) { case LossName.hs: return("hs"); case LossName.ns: return("ns"); case LossName.softmax: return("softmax"); case LossName.ova: return("one-vs-all"); default: return("Unknown loss!"); // should never happen } }
public void ParseArgs(IReadOnlyList <string> args) { var command = args[0]; if (command == "supervised") { model = ModelName.sup; loss = LossName.softmax; minCount = 1; minn = 0; maxn = 0; lr = 0.1; } else if (command == "cbow") { model = ModelName.cbow; } for (int ai = 1; ai < args.Count; ai += 2) { if (args[ai][0] != '-') { Console.Error.WriteLine("Provided argument without a dash! Usage:"); PrintHelp(); Environment.Exit(-1); } try { if (args[ai] == "-h") { Console.Error.WriteLine("Here is the help! Usage:"); PrintHelp(); Environment.Exit(-1); } else if (args[ai] == "-input") { input = args[ai + 1]; } else if (args[ai] == "-output") { output = args[ai + 1]; } else if (args[ai] == "-lr") { lr = float.Parse(args[ai + 1]); } else if (args[ai] == "-lrUpdateRate") { lrUpdateRate = int.Parse(args[ai + 1]); } else if (args[ai] == "-dim") { dim = int.Parse(args[ai + 1]); } else if (args[ai] == "-ws") { ws = int.Parse(args[ai + 1]); } else if (args[ai] == "-epoch") { epoch = int.Parse(args[ai + 1]); } else if (args[ai] == "-minCount") { minCount = int.Parse(args[ai + 1]); } else if (args[ai] == "-minCountLabel") { minCountLabel = int.Parse(args[ai + 1]); } else if (args[ai] == "-neg") { neg = int.Parse(args[ai + 1]); } else if (args[ai] == "-wordNgrams") { wordNgrams = int.Parse(args[ai + 1]); } else if (args[ai] == "-loss") { if (args[ai + 1] == "hs") { loss = LossName.hs; } else if (args[ai + 1] == "ns") { loss = LossName.ns; } else if (args[ai + 1] == "softmax") { loss = LossName.softmax; } else if (args[ai + 1] == "one-vs-all" || args[ai + 1] == "ova") { loss = LossName.ova; } else { Console.Error.WriteLine($"Unknown loss: {args[ai + 1]}"); PrintHelp(); Environment.Exit(-1); } } else if (args[ai] == "-bucket") { bucket = int.Parse(args[ai + 1]); } else if (args[ai] == "-minn") { minn = int.Parse(args[ai + 1]); } else if (args[ai] == "-maxn") { maxn = int.Parse(args[ai + 1]); } else if (args[ai] == "-thread") { thread = int.Parse(args[ai + 1]); } else if (args[ai] == "-t") { t = float.Parse(args[ai + 1]); } else if (args[ai] == "-label") { label = args[ai + 1]; } else if (args[ai] == "-verbose") { verbose = int.Parse(args[ai + 1]); } else if (args[ai] == "-pretrainedVectors") { pretrainedVectors = args[ai + 1]; } else if (args[ai] == "-saveOutput") { saveOutput = true; ai--; } else if (args[ai] == "-qnorm") { qnorm = true; ai--; } else if (args[ai] == "-retrain") { retrain = true; ai--; } else if (args[ai] == "-qout") { qout = true; ai--; } else if (args[ai] == "-cutoff") { cutoff = int.Parse(args[ai + 1]); } else if (args[ai] == "-dsub") { dsub = int.Parse(args[ai + 1]); } else { Console.Error.WriteLine($"Unknown argument: {args[ai]}"); PrintHelp(); Environment.Exit(-1); } } catch (IndexOutOfRangeException) { Console.Error.WriteLine($"{args[ai]} is missing an argument"); PrintHelp(); Environment.Exit(-1); } } if (string.IsNullOrEmpty(input) || string.IsNullOrEmpty(output)) { Console.Error.WriteLine("Empty input or output path."); PrintHelp(); Environment.Exit(-1); } if (wordNgrams <= 1 && maxn == 0) { bucket = 0; } }