public void startTrain(List <List <Dictionary <string, List <DataInfo> > > > trainDataList, List <int> ScoreList)
    {
        onTrainDone done = new onTrainDone(StyleMainVC.Instance.onNNDone);

        if (trainDataList.Count != ScoreList.Count)
        {
            print("In *startTrain* List Count Err");
        }
        else
        {
            for (int iIndex = 0; iIndex < trainDataList.Count; iIndex++)
            {
                double[] input  = normalizeDataInfo(trainDataList[iIndex]);
                double[] output = { (double)ScoreList[iIndex] / 100 };
                dataSets.Add(new DataSet(input, output));

                //float[] input = { CulInfoList[iIndex].x, CulInfoList[iIndex].y };
                //int[] output = { ScoreList[iIndex] };
                //dataSets.Add(new DataSet2(input, output));
            }
            net.Train(dataSets, MinimumError);
            done();
        }
    }
    public void startTrain(List <Vector2> CulInfoList, List <int> ScoreList)
    {
        onTrainDone done = new onTrainDone(StyleMainVC.Instance.onNNDone);

        if (CulInfoList.Count != ScoreList.Count)
        {
            print("In *startTrain* List Count Err");
        }
        else
        {
            for (int iIndex = 0; iIndex < CulInfoList.Count; iIndex++)
            {
                double[] input  = { (double)(CulInfoList[iIndex].x - 0.5f) / 3, (double)CulInfoList[iIndex].y };
                double[] output = { (double)ScoreList[iIndex] / 100 };
                dataSets.Add(new DataSet(input, output));

                //float[] input = { CulInfoList[iIndex].x, CulInfoList[iIndex].y };
                //int[] output = { ScoreList[iIndex] };
                //dataSets.Add(new DataSet2(input, output));
            }
            net.Train(dataSets, MinimumError);
            done();
        }
    }