예제 #1
0
        /// <summary>
        /// save specific model into final model location,  delete temporary models and return model path
        /// </summary>
        /// <param name="trParams">Training parameters</param>
        /// <param name="tpl">Temporary stored model information</param>
        /// <returns></returns>
        private static string saveModel(TrainingParameters trParams, Tuple <double, double, string> tpl)
        {
            //extract file name from temp_models dir
            var tempModelsDir = Path.GetDirectoryName(tpl.Item3);
            var dirInfo       = new DirectoryInfo(tempModelsDir);

            //folder for final model
            var finDir = trParams.ModelFinalLocation;

            //in case directory doesn't exist
            if (!Directory.Exists(finDir))
            {
                Directory.CreateDirectory(finDir);
            }

            //copy best model to final location
            var fName    = Path.GetFileName(tpl.Item3);
            var fullPath = Path.Combine(finDir, fName);

            File.Copy(tpl.Item3, fullPath);

            //delete temp_modes folder
            MLFactory.DeleteAllFiles(tempModelsDir);
            var bestModelPath = $"{MLFactory.m_MLModelFolder}\\{fName}";//return always relative path

            return(bestModelPath);
        }