gpt4 book ai didi

LibSVM 在大型特征向量上失败(SEGFAULT)

转载 作者:行者123 更新时间:2023-11-28 06:01:33 27 4
gpt4 key购买 nike

我正在为使用 LibSVM 的 Android 构建 NDK 应用程序。我在 XCode 中为我的 mac 构建了一个等价物(都是 C++)

我发现 Mac 可以高速准确地处理我给它的非常大的特征向量(~16800 个特征)进行训练和分类

在 Android(非常相似的代码)上,我可以成功地训练/学习 150 个功能,但是当我尝试我的全部 16800 个功能时,我会遇到以下段错误(即使它在 Mac 上运行良好)。只有分类(不过 svm_predict。训练总是很好。

您可以看到它在 LibSVM 使用的“点”函数上失败了

0-16 23:28:41.084 30997-31028/? A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0xaf000000 in tid 31028 (GLThread 17147)
10-16 23:28:41.190 27393-27393/? I/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
10-16 23:28:41.191 27393-27393/? I/DEBUG: Build fingerprint: 'google/hammerhead/hammerhead:5.1.1/LMY48M/2167285:user/release-keys'
10-16 23:28:41.191 27393-27393/? I/DEBUG: Revision: '11'
10-16 23:28:41.191 27393-27393/? I/DEBUG: ABI: 'arm'
10-16 23:28:41.191 27393-27393/? I/DEBUG: pid: 30997, tid: 31028, name: GLThread 17147 >>> cc.openframeworks.androidEmptyExample <<<
10-16 23:28:41.191 27393-27393/? I/DEBUG: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0xaf000000
10-16 23:28:41.202 27393-27393/? I/DEBUG: r0 aef3e000 r1 aef5ed10 r2 00000001 r3 af000000
10-16 23:28:41.202 27393-27393/? I/DEBUG: r4 aec29eb8 r5 00000001 r6 b4b2c608 r7 12d090c0
10-16 23:28:41.202 27393-27393/? I/DEBUG: r8 12d15660 r9 b4a39400 sl 00000000 fp af37d824
10-16 23:28:41.202 27393-27393/? I/DEBUG: ip b6e417dc sp af37d810 lr a301ff78 pc a301ff04 cpsr 000f0010
10-16 23:28:41.202 27393-27393/? I/DEBUG: #00 pc 00167f04 /data/app/cc.openframeworks.androidEmptyExample-1/lib/arm/libOFAndroidApp.so (Kernel::dot(svm_node const*, svm_node const*)+192)

关于这里发生的事情有什么想法吗?

我正在使用以下参数:

  mSvm.setSvmType(C_SVC);
mSvm.setKernelType(LINEAR);
mSvm.setCost(1);
mSvm.setGamma(1/16800);
mSvm.setCoef0(0);
mSvm.setCachesize(40);
mSvm.setEpsilon(0.001);
mSvm.setShrinking(false);

mSvm.setDegree(1);
mSvm.setNu(0.5);

最佳答案

根据以下行,您似乎从 LIBSVM 的点积操作中得到了错误:

10-16 23:28:41.202 27393-27393/? I/DEBUG: #00 pc 00167f04 /data/app/cc.openframeworks.androidEmptyExample-1/lib/arm/libOFAndroidApp.so (Kernel::dot(svm_node const*, svm_node const*)+192)

此例程经常被大量用户疯狂测试,因此我怀疑其中是否存在错误。

您是否 100% 确定您的指示有效?您是否有可能碰巧在 mac 版本上遇到未定义的行为?我的意思是,您提供的指针是否有可能在所有平台上始终无效,但恰好在 mac 版本上仍然有效?当您在多个平台上工作时,这种给人以正常工作错觉的错误并不少见。

关于LibSVM 在大型特征向量上失败(SEGFAULT),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33192688/

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