/// <summary> /// Generate random training into a training set. /// </summary> /// <param name="training">The training set to generate into.</param> /// <param name="seed">The seed to use.</param> /// <param name="count">How much data to generate.</param> /// <param name="min">The low random value.</param> /// <param name="max">The high random value.</param> public static void Generate(IMLDataSetAddable training, long seed, int count, double min, double max) { var rand = new LinearCongruentialGenerator(seed); int inputCount = training.InputSize; int idealCount = training.IdealSize; for (int i = 0; i < count; i++) { var inputData = new BasicMLData(inputCount); for (int j = 0; j < inputCount; j++) { inputData[j] = rand.Range(min, max); } var idealData = new BasicMLData(idealCount); for (int j = 0; j < idealCount; j++) { idealData[j] = rand.Range(min, max); } var pair = new BasicMLDataPair(inputData, idealData); training.Add(pair); } }
/// <summary> /// Construct a new NeuralDataSet based on the parameters specified. /// </summary> /// <param name="inputCount">The input count.</param> /// <param name="idealCount">The output count.</param> public NormalizationStorageMLDataSet(int inputCount, int idealCount) { _inputCount = inputCount; _idealCount = idealCount; _dataset = new BasicMLDataSet(); }
/// <summary> /// Copy whatever dataset type is specified into a memory dataset. /// </summary> /// <param name="set">The dataset to copy.</param> public BasicMLSequenceSet(IMLDataSet set) { _currentSequence = new BasicMLDataSet(); _sequences.Add(_currentSequence); int inputCount = set.InputSize; int idealCount = set.IdealSize; foreach (IMLDataPair pair in set) { BasicMLData input = null; BasicMLData ideal = null; if (inputCount > 0) { input = new BasicMLData(inputCount); pair.Input.CopyTo(input.Data, 0, pair.Input.Count); } if (idealCount > 0) { ideal = new BasicMLData(idealCount); pair.Ideal.CopyTo(ideal.Data, 0, pair.Ideal.Count); } _currentSequence.Add(new BasicMLDataPair(input, ideal)); } }
public void StartNewSequence() { if (_currentSequence.Count > 0) { _currentSequence = new BasicMLDataSet(); _sequences.Add(_currentSequence); } }
/// <summary> /// Construct a normalized neural storage class to hold data. /// </summary> /// <param name="dataset">The data set to store to. This uses an existing data set.</param> public NormalizationStorageMLDataSet(IMLDataSetAddable dataset) { _dataset = dataset; _inputCount = _dataset.InputSize; _idealCount = _dataset.IdealSize; }
/// <summary> /// Construct a data set from an already created list. Mostly used to /// duplicate this class. /// </summary> /// <param name="theData">The data to use.</param> public BasicMLSequenceSet(IList <IMLDataPair> theData) { _currentSequence = new BasicMLDataSet(theData); _sequences.Add(_currentSequence); }
/// <summary> /// Construct a data set from an input and ideal array. /// </summary> /// <param name="input">The input into the machine learning method for training.</param> /// <param name="ideal">The ideal output for training.</param> public BasicMLSequenceSet(double[][] input, double[][] ideal) { _currentSequence = new BasicMLDataSet(input, ideal); _sequences.Add(_currentSequence); }
public BasicMLSequenceSet(BasicMLSequenceSet other) { _sequences = other._sequences; _currentSequence = other._currentSequence; }
/// <summary> /// Default constructor. /// </summary> public BasicMLSequenceSet() { _currentSequence = new BasicMLDataSet(); _sequences.Add(_currentSequence); }