public Create ( String methodType, String architecture, int input, int output ) : IMLMethod | ||
methodType | String | The method to create. |
architecture | String | The architecture string. |
input | int | The input count. |
output | int | The output count. |
리턴 | IMLMethod |
public static void Process(String methodName, String methodArchitecture, String trainerName, String trainerArgs, int outputNeurons) { // first, create the machine learning method var methodFactory = new MLMethodFactory(); IMLMethod method = methodFactory.Create(methodName, methodArchitecture, 2, 1); // second, create the data set IMLDataSet dataSet = MakeAsets(3000, outputNeurons); // third, create the trainer var trainFactory = new MLTrainFactory(); IMLTrain train = trainFactory.Create(method, dataSet, trainerName, trainerArgs); // reset if improve is less than 1% over 5 cycles if (method is IMLResettable && !(train is ManhattanPropagation)) { train.AddStrategy(new RequiredImprovementStrategy(500)); } // fourth, train and evaluate. EncogUtility.TrainToError(train, 0.01); EncogUtility.Evaluate((IMLRegression)method, dataSet); // finally, write out what we did Console.WriteLine(@"Machine Learning Type: " + methodName); Console.WriteLine(@"Machine Learning Architecture: " + methodArchitecture); Console.WriteLine(@"Training Method: " + trainerName); Console.WriteLine(@"Training Args: " + trainerArgs); }
/// <inheritdoc /> public override sealed bool ExecuteCommand(String args) { // get filenames String trainingID = Prop.GetPropertyString( ScriptProperties.MlConfigTrainingFile); String resourceID = Prop.GetPropertyString( ScriptProperties.MlConfigMachineLearningFile); FileInfo trainingFile = Script.ResolveFilename(trainingID); FileInfo resourceFile = Script.ResolveFilename(resourceID); String type = Prop.GetPropertyString( ScriptProperties.MlConfigType); String arch = Prop.GetPropertyString( ScriptProperties.MlConfigArchitecture); EncogLogging.Log(EncogLogging.LevelDebug, "Beginning create"); EncogLogging.Log(EncogLogging.LevelDebug, "training file:" + trainingID); EncogLogging.Log(EncogLogging.LevelDebug, "resource file:" + resourceID); EncogLogging.Log(EncogLogging.LevelDebug, "type:" + type); EncogLogging.Log(EncogLogging.LevelDebug, "arch:" + arch); var egb = new EncogEGBFile(trainingFile.ToString()); egb.Open(); int input = egb.InputCount; int ideal = egb.IdealCount; egb.Close(); var factory = new MLMethodFactory(); IMLMethod obj = factory.Create(type, arch, input, ideal); if (obj is BayesianNetwork) { string query = Prop.GetPropertyString(ScriptProperties.MLConfigQuery); ((BayesianNetwork) obj).DefineClassificationStructure(query); } EncogDirectoryPersistence.SaveObject(resourceFile, obj); return false; }
/// <summary> /// Perform the training option. /// </summary> public void Train() { // first, create the machine learning method var methodFactory = new MLMethodFactory(); IMLMethod method = methodFactory.Create(Config.MethodType, Config.MethodArchitecture, Config.InputWindow, 1); // second, create the data set string filename = FileUtil.CombinePath(new FileInfo(_path), Config.FilenameTrain).ToString(); IMLDataSet dataSet = EncogUtility.LoadEGB2Memory(new FileInfo(filename)); // third, create the trainer var trainFactory = new MLTrainFactory(); IMLTrain train = trainFactory.Create(method, dataSet, Config.TrainType, Config.TrainParams); // reset if improve is less than 1% over 5 cycles if (method is IMLResettable && !(train is ManhattanPropagation)) { train.AddStrategy(new RequiredImprovementStrategy(500)); } // fourth, train and evaluate. EncogUtility.TrainToError(train, Config.TargetError); method = train.Method; EncogDirectoryPersistence.SaveObject(FileUtil.CombinePath(new FileInfo(_path), Config.MethodName), method); // finally, write out what we did Console.WriteLine(@"Machine Learning Type: " + Config.MethodType); Console.WriteLine(@"Machine Learning Architecture: " + Config.MethodArchitecture); Console.WriteLine(@"Training Method: " + Config.TrainType); Console.WriteLine(@"Training Args: " + Config.TrainParams); }
/// <summary> /// Create the selected method. /// </summary> /// <returns>The created method.</returns> public IMLMethod CreateMethod() { if (_methodType == null) { throw new EncogError( "Please call selectMethod first to choose what type of method you wish to use."); } var methodFactory = new MLMethodFactory(); IMLMethod method = methodFactory.Create(_methodType, _methodArgs, _dataset .NormHelper.CalculateNormalizedInputCount(), _config .DetermineOutputCount(_dataset)); return method; }
private void CreateCommand() { if (_cmd.Args.Count != 3) { Console.WriteLine(@"Must specify method filename, type and args."); return; } String methodFile = _cmd.Args[0]; String type = _cmd.Args[1]; String args = _cmd.Args[2]; _sw.Start(); var factory = new MLMethodFactory(); IMLMethod method = factory.Create(type, args, 0, 0); EncogDirectoryPersistence.SaveObject(new FileInfo(methodFile), method); }