/// <summary> /// Evaluate disk. /// </summary> private void EvalBinary() { FileInfo file = FileUtil.CombinePath( new FileInfo(Path.GetTempPath()), "temp.egb" ); BasicMLDataSet training = RandomTrainingFactory.Generate( 1000, 10000, 10, 10, -1, 1); // create the binary file if (file.Exists) { file.Delete(); } var training2 = new BufferedMLDataSet(file.ToString()); training2.Load(training); const long stop = (10*Evaluate.Milis); int record = 0; IMLDataPair pair; var watch = new Stopwatch(); watch.Start(); int iterations = 0; while(true) { iterations++; pair = training[record++]; if(record >= training.Count) record = 0; if((iterations & 0xff) == 0 && watch.ElapsedMilliseconds >= stop) break; } training2.Close(); iterations /= 100000; _report.Report(Steps, Step3, "Disk(binary) dataset, result: " + Format.FormatInteger(iterations)); if (file.Exists) { file.Delete(); } _binaryScore = iterations; }
/// <summary> /// Load an EGB file to memory. /// </summary> /// <param name="filename">The file to load.</param> /// <returns>A memory data set.</returns> public static IMLDataSet LoadEGB2Memory(FileInfo filename) { var buffer = new BufferedMLDataSet(filename.ToString()); var result = buffer.LoadToMemory(); buffer.Close(); return result; }
/// <summary> /// Called to generate the training file. /// </summary> public void Generate() { string[] list = Directory.GetFiles(_path); _trainingFile.Delete(); var output = new BufferedMLDataSet(_trainingFile.ToString()); output.BeginLoad(Config.InputWindow, 1); foreach (string file in list) { var fn = new FileInfo(file); if (fn.Name.StartsWith("collected") && fn.Name.EndsWith(".csv")) { ProcessFile(file, output); } } output.EndLoad(); output.Close(); }
/// <summary> /// Convert a CSV file to binary. /// </summary> /// <param name="csvFile">The CSV file to convert.</param> /// <param name="format">The format.</param> /// <param name="binFile">The binary file.</param> /// <param name="input">The input.</param> /// <param name="ideal">The ideal.</param> /// <param name="headers">True, if headers are present.</param> public static void ConvertCSV2Binary(FileInfo csvFile, CSVFormat format, FileInfo binFile, int[] input, int[] ideal, bool headers) { binFile.Delete(); var csv = new ReadCSV(csvFile.ToString(), headers, format); var buffer = new BufferedMLDataSet(binFile.ToString()); buffer.BeginLoad(input.Length, ideal.Length); while (csv.Next()) { var inputData = new BasicMLData(input.Length); var idealData = new BasicMLData(ideal.Length); // handle input data for (int i = 0; i < input.Length; i++) { inputData[i] = csv.GetDouble(input[i]); } // handle input data for (int i = 0; i < ideal.Length; i++) { idealData[i] = csv.GetDouble(ideal[i]); } // add to dataset buffer.Add(inputData, idealData); } buffer.EndLoad(); buffer.Close(); csv.Close(); }