我在FANN中找不到很多有关并行训练的文档,但是我设法在我的项目中实现了它并使其正常运行。问题是,尽管我看到它在训练中使用了更多线程,但速度却慢了近三倍。这是代码之间的区别:
// without_parallel.c:
#include <floatfann.h>
...
error = fann_train_epoch(ann, data);
// with_parallel.c:
#include <floatfann.h>
#include <parallel_fann.h>
...
error = fann_train_epoch_batch_parallel(ann, data, threads);
这不是特定训练算法的问题-所有相应的并行算法都较慢。
我只是大大误解了并行训练的目的吗?