在使用LIBSVM时,我想利用今天的CPU多核功能。我想知道/理解的是,我是否能够安全地同时从多个线程调用LIBSVM服务(例如,在具有不同参数的8个不同模型上调用svm_train()以进行参数调整)。
我唯一能找到的参考资料是在LIBSVM的站点:问:如何使用OpenMP在多核/共享内存计算机上并行LIBSVM?
问题是,它讨论了并行化训练函数本身的算法(代码),但对于多次并发调用训练函数却只字未提--我更喜欢这样做,因为它使我更好地控制交叉验证和参数调整/网格搜索过程。
注意:我正在使用LIBSVM包本身(目前是java实现,也可能是python )。
发布于 2014-01-22 17:26:57
我知道您希望在8个不同的问题实例和不同的参数上调用svm_train()来获得不同的模型实例!
当我查看时,我发现问题和参数实例只会被读取,而不会被写入它们。该方法创建所有需要修改和存储数据的对象,并最终返回所创建的模型。
这意味着从多个线程调用svm_train()应该没有问题。
https://stackoverflow.com/questions/21261574
复制相似问题