matlab vs C版本中的svmtrain函数执行时间
Posted
技术标签:
【中文标题】matlab vs C版本中的svmtrain函数执行时间【英文标题】:svmtrain function execution time in matlab vs C version 【发布时间】:2017-02-13 22:04:36 【问题描述】:我正在使用 libSVM,matlab 中的 svmtrain 函数比 C 花费更少的时间。虽然 C - 通常 - 比 matlab 快得多。两个分类器采用相同的参数,并以相同的迭代次数返回相同数量的 SVM。
以下是两者的代码: MATLAB:
t1=cputime;
model = svmtrain(Labels,data, '-h 0 -s 0 -c 0.025 -n 0.01 -b 1 -t 0 -d 1 -p 0.001');
t2=cputime;
fprintf('Elapsed time=%.3f\n',t2-t1)
AND C 代码:
clock_t begin = clock();
model = svm_train(&prob,¶m);
clock_t end = clock();;
double time_spent = (double)(end - begin) / double(CLOCKS_PER_SEC);
【问题讨论】:
" 虽然 C - 一般而言 - 比 matlab 快得多" 不一定 ***.com/questions/20513071/… 做更多的运行/基准测试。 【参考方案1】:当您使用选项-b 1
来获得概率时:
正如我的评论中所指出的,做更多的测试是明智的。即使种子不同(一种可能性),许多次运行的平均值也应该是相同的使用相同的代码!
另请参阅this question,其中列出了不同行为的其他一些可能性(您说您获得了相同数量的 SV;但可能内部行为不同)
【讨论】:
以上是关于matlab vs C版本中的svmtrain函数执行时间的主要内容,如果未能解决你的问题,请参考以下文章
[MATLAB][原创]Matlab添加libsvm后报错svmtrain已被删除, 请改用fitcsvm解决办法