//private string _filePath; public ArtificialNeuralNetwork(LayerStructure layerStructure, TrainingParameters trainingParameters, IDataSet dataSet, IOptimizationStrategy strategy, IInitialRandomDistributionType randomDistribution) { _layerStructure = layerStructure; _trainingParameters = trainingParameters; DataSet = dataSet; _strategy = strategy; _strategy.LayerStructure = layerStructure; _randomDistribution = randomDistribution; CreateDataSets(); SetWeights(); InitPreviousDeltaWeights(); SetBiases(); InitPreviousDeltaBiases(); _strategy.FetchInitialWeightsAndBiases(ref _weights, ref _biases); _strategy.FetchPreviousDeltaWeightsAndBiases(ref _previousDeltaWeights, ref _previousDeltaBiases); _savePath = Path.GetTempPath(); }
public INetwork LoadNetwork(string xmlFilePath, IDataSet dataset) { _xmlDoc = new XmlDocument(); _filepath = xmlFilePath; _xmlDoc.Load(_filepath); //Create Training Params---------------------8::::::::::::::>---------------------------------------- TrainingParameters trainingParams = new TrainingParameters() { epochs = Convert.ToInt32(GetXmlValue("NeuralNetwork/Settings/TrainingParameters/Epochs")), learningRate = Convert.ToDouble(GetXmlValue("NeuralNetwork/Settings/TrainingParameters/LearningRate")), momentum = Convert.ToDouble(GetXmlValue("NeuralNetwork/Settings/TrainingParameters/Momentum")) }; //Create LayerStructure---------------------8::::::::::::::>---------------------------------------- List <int> hiddenLayersList = new List <int>(); int numberOfHiddenLayers = Convert.ToInt32(GetXmlValue("NeuralNetwork/Settings/LayerStructure/NumberOfHiddenLayers")); for (int i = 1; i <= numberOfHiddenLayers; i++) { int numberOfNeuronsInHiddenLayer = Convert.ToInt32(GetXmlValue("NeuralNetwork/Settings/LayerStructure/NumberOfNeuronsInHiddenLayer" + i.ToString())); hiddenLayersList.Add(numberOfNeuronsInHiddenLayer); } LayerStructure layerStructure = new LayerStructure() { numberOfInputNodes = Convert.ToInt32(GetXmlValue("NeuralNetwork/Settings/LayerStructure/NumberOfInputNeurons")), numberOfOutputNodes = Convert.ToInt32(GetXmlValue("NeuralNetwork/Settings/LayerStructure/NumberOfOutputNeurons")), HiddenLayerList = hiddenLayersList }; //Create Distribution Type---------------------8::::::::::::::>---------------------------------------- string distribution = GetXmlValue("NeuralNetwork/Settings/DistributionType/InitialRandomDistributionType"); var distributionType = Type.GetType(distribution + ",NeuralNetwork.Core"); IInitialRandomDistributionType initialDistribution = Activator.CreateInstance(distributionType) as IInitialRandomDistributionType; //Create Strategy---------------------8::::::::::::::>---------------------------------------- string hiddenFunction = GetXmlValue("NeuralNetwork/Settings/Strategy/HiddenLayerActivationFunction"); string outputFunction = GetXmlValue("NeuralNetwork/Settings/Strategy/OutputLayerActivationFunction"); string costFunc = GetXmlValue("NeuralNetwork/Settings/Strategy/CostFunction"); string regularizationEnum = GetXmlValue("NeuralNetwork/Settings/Strategy/RegularizationType"); string regularizationStrategyFactory = GetXmlValue("NeuralNetwork/Settings/Strategy/RegularizationStrategyFactory"); var hiddenFunctionType = Type.GetType(hiddenFunction + ",NeuralNetwork.Core"); var outputFunctionType = Type.GetType(outputFunction + ",NeuralNetwork.Core"); var costFunctionType = Type.GetType(costFunc + ",NeuralNetwork.Core"); var regularizationStrategyFactoryType = Type.GetType(regularizationStrategyFactory + ",NeuralNetwork.Core"); IActivationFunction hiddenActivationFunction = Activator.CreateInstance(hiddenFunctionType) as IActivationFunction; IActivationFunction outputActivationFunction = Activator.CreateInstance(outputFunctionType) as IActivationFunction; ICostFunction costFunction = Activator.CreateInstance(costFunctionType) as ICostFunction; RegularizationType regularizationType = (RegularizationType)Enum.Parse(typeof(RegularizationType), regularizationEnum); IRegularizationStrategyFactory regularizationStrategyFact = Activator.CreateInstance(regularizationStrategyFactoryType) as IRegularizationStrategyFactory; string optimizationStrategy = GetXmlValue("NeuralNetwork/Settings/Strategy/OptimizationStrategy"); var optStrategy = Type.GetType(optimizationStrategy + ",NeuralNetwork.Core"); IOptimizationStrategy strategy = Activator.CreateInstance(optStrategy, hiddenActivationFunction, outputActivationFunction, costFunction, regularizationType, regularizationStrategyFact) as IOptimizationStrategy; //Create Network---------------------8::::::::::::::>---------------------------------------- network = new ArtificialNeuralNetwork(layerStructure, trainingParams, dataset, strategy, initialDistribution); //Set Weights---------------------8::::::::::::::>---------------------------------------- network.Weights.Clear(); LoadInputWeights(); LoadHiddenWeights(); //Set Biases---------------------8::::::::::::::>---------------------------------------- network.Biases.Clear(); LoadHiddenBiases(); LoadOutputBiases(); //Clear XMLDoc---------------------8::::::::::::::>---------------------------------------- _xmlDoc = null; return(network); }