/// <summary> /// Creates a graph learning context /// </summary> /// <param name="learningRate">Initial learning rate</param> /// <param name="batchSize">Mini batch size</param> /// <param name="trainingErrorCalculation">How to calculate the training error</param> /// <param name="deferUpdates">True to defer updates (used when training recurrent neural networks)</param> /// <returns></returns> public ILearningContext CreateLearningContext(float learningRate, int batchSize, TrainingErrorCalculation trainingErrorCalculation = TrainingErrorCalculation.Fast, bool deferUpdates = false) { return(new LearningContext(LinearAlgebraProvider, learningRate, batchSize, trainingErrorCalculation, deferUpdates)); }
/// <summary> /// Creates a graph training engine /// </summary> /// <param name="dataSource">Data source with training data</param> /// <param name="learningRate">Initial learning rate</param> /// <param name="batchSize">Mini batch size</param> /// <param name="trainingErrorCalculation">How to calculate the training error</param> /// <returns></returns> public IGraphTrainingEngine CreateTrainingEngine(IDataSource dataSource, float learningRate = 0.1f, int batchSize = 128, TrainingErrorCalculation trainingErrorCalculation = TrainingErrorCalculation.Fast) { var learningContext = new LearningContext(LinearAlgebraProvider, learningRate, batchSize, trainingErrorCalculation, dataSource.IsSequential); return(new TrainingEngine(LinearAlgebraProvider, dataSource, learningContext, null)); }
/// <summary> /// Creates a graph training engine /// </summary> /// <param name="dataSource">Data source with training data</param> /// <param name="graph">The serialised graph to execute</param> /// <param name="trainingRate">Initial learning rate</param> /// <param name="batchSize">Mini batch size</param> /// <param name="trainingErrorCalculation">How to calculate the training error</param> /// <returns></returns> public IGraphTrainingEngine CreateTrainingEngine(IDataSource dataSource, Models.ExecutionGraph graph, float trainingRate = 0.1f, int batchSize = 128, TrainingErrorCalculation trainingErrorCalculation = TrainingErrorCalculation.Fast) { var learningContext = new LearningContext(LinearAlgebraProvider, trainingRate, batchSize, trainingErrorCalculation, dataSource.IsSequential); var input = this.CreateFrom(graph); return(new TrainingEngine(LinearAlgebraProvider, dataSource, learningContext, input)); }