/* Method: TrainEpochSarpropParallel
Parameters:
data - the data to train on
threadNumb - the thread to do training on
predictedOutputs - the predicted outputs
*/
public float TrainEpochSarpropParallel(TrainingData data, uint threadNumb, List<List<float>> predictedOutputs)
{
using (floatVectorVector predicted_out = new floatVectorVector(predictedOutputs.Count))
{
for (int i = 0; i < predictedOutputs.Count; i++)
{
predicted_out[i] = new floatVector(predictedOutputs[i].Count);
}
float result = fannfloat.train_epoch_sarprop_parallel(net.to_fann(), data.ToFannTrainData(), threadNumb, predicted_out);
predictedOutputs.Clear();
for (int i = 0; i < predicted_out.Count; i++)
{
List<float> list = new List<float>();
for (int j = 0; j < predicted_out[i].Count; j++)
{
list.Add(predicted_out[i][j]);
}
predictedOutputs.Add(list);
}
return result;
}
}