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);
 }