Я создаю нейронную сеть, в которой мне нужно прочитать данные из файла CSV и сохранить каждую строку в качестве отдельного обучающего набора для сетевых входов.Каждая строка состоит из набора шаблонов и заканчивается целевым выводом.
Мне удалось прочитать и проанализировать первую строку в соответствующих списках указателей, а затем сохранить их в векторе, создав новый объект базового класса, который принимает два указателя.
Проблема в том, что я не могу понять, как прочитать строку из файла, сохранить ее в векторе указателя объекта, а затем продолжить чтение каждой строки до конца файла, сохраняя каждуювектор.Я был бы очень признателен за любую помощь, которая могла бы быть предоставлена вместе с возможными предложениями, которые могут быть более эффективными или оптимальными.
void processLine( string &line )
{
double* pattern = new double[numPatterns];
double* target = new double[numTargets];
char* cstr = new char[line.size()+1];
char* t;
strcpy(cstr, line.c_str());
int i = 0;
t=strtok (cstr,",");
while ( t!=NULL && i < (numPatterns + numTargets) )
{
if ( i < numPatterns ) pattern[i] = atof(t);
else target[i - numPatterns] = atof(t);
//move token onwards
t = strtok(NULL,",");
i++;
}
data.push_back( new priceEntries( pattern, target ) );
}
bool loadDataFile(const char* file, int numP, numT)
{
numPatterns = numP;
numTargets = numT;
fstream inputFile;
inputFile.open(filename, ios::in);
if ( inputFile.is_open() )
{
string line = "";
//read data
while ( getline(inputFile, line) )
{
processLine(line);
}
random_shuffle(data.begin(), data.end());
inputFile.close()
return true;
}
else
{
cout << "File could not be opened.\n";
}
}