我正在使用以下代码在 libsvm 上进行网格搜索:
bestcv = 0;
for log2c = -1:3,
for log2g = -4:1,
cmd = ['-v 5 -c ', num2str(2^log2c), ' -g ', num2str(2^log2g)];
cv = svmtrain(heart_scale_label, heart_scale_inst, cmd);
if (cv >= bestcv),
bestcv = cv; bestc = 2^log2c; bestg = 2^log2g;
end
fprintf('%g %g %g (best c=%g, g=%g, rate=%g)\n', log2c, log2g, cv, bestc, bestg, bestcv);
end
为了提高速度,我可以选择并行计算工具箱或在 GPU 上运行它(尽管我认为第一个选项会更好,因为 GPU 擅长卷积等操作,在这种情况下并不那么重 - 请纠正我,如果我我错了。)
如何通过在并行计算工具箱上运行它来优化它?我是这个领域的初学者,因此需要一些关于如何实现 parfor 循环的输入。
编辑 可以使用matlabpool来完成吗?
谢谢