예제 #1
0
        /// <summary>
        /// Backuping network's memory to db OR/AND local folder
        /// </summary>
        /// <param name="memoryFolder"></param>
        /// <param name="dbConfig"></param>
        /// <param name="networkStructureInfo"></param>
        /// <returns>State of operation success</returns>
        public bool BackupMemory(string memoryFolder, DatabaseConfig dbConfig = null, string networkStructureInfo = "no information")
        {
            if (_networkTeacher == null)
            {
                Logger.LogError(ErrorType.OperationWithNonexistentNetwork, "Database memory backuping failed!");
                return(false);
            }

            try
            {
                if (_networkTeacher.CheckMemory(memoryFolder))
                {
                    _networkTeacher.BackupMemory(memoryFolder, ".memory_backups", dbConfig, networkStructureInfo);
                }
                else
                {
                    return(false);
                }

                return(true);
            }
            catch
            {
                return(false);
            }
        }
        public void Train(TrainConfiguration trainConfiguration, int iterationToPause = 100)
        {
            if (_networkTeacher.CheckMemory(trainConfiguration.MemoryFolder))
            {
                _networkTeacher.TrainNets(trainConfiguration, iterationToPause);

                _networkTeacher.PrintLearnStatistic(trainConfiguration, true);

                if (_networkTeacher.CheckMemory(trainConfiguration.MemoryFolder))
                {
                    _networkTeacher.BackupMemory();
                }
            }
            else
            {
                Console.WriteLine("Train failed! Invalid memory!");
            }
        }