public void LoadLearnData() { try { learnData = new List<NeuralNetworkIO>(); if (!File.Exists(learnDataFile)) throw new Exception("Can't load file"); TextReader reader = File.OpenText(learnDataFile); string line; while ((line = reader.ReadLine()) != null) { string[] numbersStr = line.Split(learnDataSplitCharacters); if (numbersStr.Length != wordsInLineCount) { Debug.LogError("Incorrect number count in line:" + numbersStr.Length); continue; } NeuralNetworkIO data = new NeuralNetworkIO(); data.input = new float[inputSize]; data.output = new float[gestureCount]; for (int a = 0; a < wordsInLineCount; ++a) { if (a < inputSize) data.input[a] = float.Parse(numbersStr[a]); else data.output[a - inputSize] = float.Parse(numbersStr[a]); } learnData.Add(data); } reader.Close(); } catch (System.Exception e) { Debug.LogException(e); } }
public void Add() { if (points.Count == 0) return; float[] deltaAngles = GestureRecognizerDeltaAngle.GetDeltaAngles(gesture); NeuralNetworkIO data = new NeuralNetworkIO(); data.input = new float[GestureLearning.inputSize]; for (int a = 0; a < data.input.Length; ++a) { if (a < GestureLearning.pointsCount) data.input[a] = gesture[a].x; else if (a < GestureLearning.pointsCount * 2) data.input[a] = gesture[a - GestureLearning.pointsCount].y; else data.input[a] = GestureRecognizerDeltaAngle.NormalizeAngleTo01(deltaAngles[a - GestureLearning.pointsCount * 2]); } data.output = new float[GestureLearning.gestureCount]; data.output[gestureID] = 1f; gestureLearning.Add(data); }
public void Add(NeuralNetworkIO data) { learnData.Add(data); }