public override void Init() { base.Init(); m_patternDefinitionSet = new List <PRPatternDefinition>(); m_patternsDefinitionsDict = new Dictionary <string, PRPatternDefinition>(); LoadDefinitionSet(); if (!LoadNeuronalNet()) { m_neuronalNetwork = new PartyBPN(m_defaultNeuronNumberInput - 1, Mathf.RoundToInt((m_defaultNeuronNumberInput + 5) / 2), 5, m_defaultLearningRate, m_defaultTheta, m_defaultSigmoidElastic, m_defaultMomentum); } }
private bool LoadNeuronalNet() { #if UNITY_ANDROID string json = m_neuronalNetworkTextAsset.text; #else string json = File.ReadAllText(Application.dataPath + "/" + m_pathToNeuronalNetworkFile); #endif //string json = File.ReadAllText(Application.dataPath+"/"+m_pathToFile); m_neuronalNetwork = new PartyBPN(); if (!string.IsNullOrEmpty(json)) { Dictionary <string, object> data = (Dictionary <string, object>)MiniJSON.Json.Deserialize(json); m_neuronalNetwork.Deserialize(data); return(true); } else { return(false); } }
/// <summary> /// Try to train the current BPN with a list of patterns; /// </summary> /// <param name="points"></param> /// <param name="name"></param> public IEnumerator StartBPNTraining(List <PRPatternGroup> patternDefinitions, int numberOfEpochs) { m_neuronalNetwork = new PartyBPN(m_defaultNeuronNumberInput - 1, Mathf.RoundToInt((patternDefinitions.Count + m_defaultNeuronNumberInput) / 2), patternDefinitions.Count, m_defaultLearningRate, m_defaultTheta, m_defaultSigmoidElastic, m_defaultMomentum); return(m_neuronalNetwork.StartTraining(patternDefinitions, numberOfEpochs)); }