public static void ExternalEvaluation(string ExternalEvalToolPath, string ResultFile, string TestLabelFile, int epoch, string EvalDataName)
{
string Extension;
switch(EvalDataName)
{
case "Test Set":
Extension = ".testscore";
break;
case "Validation Set":
Extension = ".validscore";
break;
default:
throw new Exception("Unknown EvalDataName.");
}
using (Process callProcess = new Process()
{
StartInfo = new ProcessStartInfo()
{
FileName = ExternalEvalToolPath,
Arguments = string.Format("\"{0}\" \"{1}\"", ResultFile + Extension, TestLabelFile),
CreateNoWindow = true,
UseShellExecute = false,
}
})
{
callProcess.Start();
callProcess.WaitForExit();
}
StreamReader ExternalPerfFile = new StreamReader(ResultFile + Extension + ".extperf");
using (StreamWriter ExternalPerfLogFile = File.AppendText(ResultFile + ".extperf"))
{
ExternalPerfLogFile.WriteLine("Epoch = {0}"+"\t[" + EvalDataName + "]", epoch + 1);
}
string StrLine;
while ((StrLine = ExternalPerfFile.ReadLine()) != null)
{
Console.WriteLine("#jvkjvkjvkjvkjvkjvkjvkjvkjvkjvkjvkjvkjvkjvkjvkjvkjvk");
Console.Write(" " + "[" + EvalDataName + "] ");
Console.WriteLine(StrLine);
Console.WriteLine("#jvkjvkjvkjvkjvkjvkjvkjvkjvkjvkjvkjvkjvkjvkjvkjvkjvk");
using (StreamWriter ExternalPerfLogFile = File.AppendText(ResultFile + ".extperf"))
{
ExternalPerfLogFile.WriteLine(StrLine);
}
}
ExternalPerfFile.Close();
}