C++でOpenCVを用いてニューラルネットワークをトレーニングしたいです。

このエントリを参考にしました。 参考サイト

識別する画像は30*50の2値画像です。

訓練画像を読み込み、最後の列(INPUT+1)に教師信号(出力が1.0になってほしいニューロン)を付加して、1枚の画像を1行に出力し、csvファイルとしました。


グローバル定数は以下のように定義し、

const int TRAINING_SAMPLES = 300; //訓練データ数
const int INPUT = 30 * 50; // 入力次元
const int CLASSES = 10; //出力次元

学習データ、教師データは以下のように宣言しています。

//---学習データ---
cv::Mat trainingData(TRAINING_SAMPLES, INPUT, CV_32F);

//---教師データ---
cv::Mat trainingTeacher(TRAINING_SAMPLES, CLASSES, CV_32F);

//---データセットの読み込み---
readDataSet(filename, trainingData, trainingTeacher);

csvファイルから訓練データを読み込む関数です。

void readDataSet( char* filename, cv::Mat &data, cv::Mat &teacher)
{
    ifstream ifs(filename);
    if (!ifs)
    {
        cerr << "Error:Input data file not found" << endl;
        exit(1);
    }
    string str;
    stringstream ss;
    float csvData[TEST_SAMPLES][INPUT + 1];
    for (int row = 0; row < TEST_SAMPLES; row++)
    {
        for (int col = 0; col < INPUT; col++)
        {
            getline(ifs.seekg(0, ios_base::cur), str, ',');
            ss.str(str);
            ss >> csvData[row][col];
            ss.str("");
            ss.clear(stringstream::goodbit);
        }
        getline(ifs.seekg(0, ios_base::cur), str, '\n');
        ss.str(str);
        ss >> csvData[row][INPUT];
        ss.str("");
        ss.clear(stringstream::goodbit);
    }

//---学習データの読み込み---
    for (int row = 0; row < TRAINING_SAMPLES; row++)
    {
        for (int col = 0; col < INPUT; col++)
        {
            data.at<float>(row, col) = csvData[row][col];
        }
    }

//---教師データの読み込み---
    for (int row = 0; row < TRAINING_SAMPLES; row++)
    {
        for (int col = 0; col < CLASSES; col++)
        {
            teacher.at<float>(row, col) = 0.0;
        }
        int label = (int)csvData[row][INPUT];
        teacher.at<float>(row, label) = 1.0;
    }
}

TRAINING_SAMPLESが小さいとき(10くらい)は問題なく動いてくれるのですが、
TRAINING_SAMPLES = 300などとしたときはこの行で

data.at<float>(row, col) = csvData[row][col];

こんなエラーがでます。
Unhandled exception at 0x00007FF7AB10D7F8 in NeuralNetwork.exe: 0xC0000005: Access violation reading location 0x000000D306604000.

メモリーが足らないのかとも思いますが、x64で開発していますし(環境設定はこのサイトを参考にしました。環境設定)
Enable Large AddressesもYESにしましたが、直りませんでした。