gpt4 book ai didi

c - matlab 与 C 版本中的 svmtrain 函数执行时间

转载 作者:行者123 更新时间:2023-11-30 16:56:37 25 4
gpt4 key购买 nike

我正在使用 libSVM,matlab 中的 svmtrain 函数比 C 花费的时间更少。尽管 C 总体上比 matlab 快得多。两个分类器采用相同的参数,并以相同的迭代次数返回相同数量的 SVM。

以下是两者的代码:MATLAB:

t1=cputime;
模型= svmtrain(标签,数据,'-h 0 -s 0 -c 0.025 -n 0.01 -b 1 -t 0 -d 1 -p 0.001');
t2=CPU时间;
fprintf('耗时=%.3f\n',t2-t1)

和 C 代码:

    clock_t begin = clock();
model = svm_train(&prob,&param);
clock_t end = clock();;
double time_spent = (double)(end - begin) / double(CLOCKS_PER_SEC);

最佳答案

当您使用选项-b 1来获取概率时:

  • libsvm 将使用 Platt scaling使用 cross-validation 获得这些概率
  • 交叉验证始终随机分割数据
  • 在 C 内,the default seed of 1 will be used
  • 也许Matlab 界面将使用基于时间(或任何其他)的种子
    • 第一步,我将 Matlabs 全局种子设置为 1,并对 C 执行相同操作;然后再次测量

正如我的评论中所指出的,进行更多测试是明智的做法。即使种子不同(有可能),多次运行的平均值也应该相同因为使用了相同的代码!

另请参阅this question其中列出了不同行为的其他一些可能性(您说您获得了相同数量的 SV;但内部行为可能不同)

关于c - matlab 与 C 版本中的 svmtrain 函数执行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39874327/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com