Matlab中的RegressionTree mex文件崩溃

我在Matlab中尝试实现一个使用RegressionTrees作为其过程一部分的分类器。现在我在回归树的mex文件中遇到了异常。

这是崩溃转储的一部分

------------------------------------------------------------------------       Segmentation violation detected at Tue Jun  4 11:49:48 2013------------------------------------------------------------------------Configuration:  Crash Decoding     : Disabled  Current Visual     : 0x21 (class 4, depth 24)  Default Encoding   : UTF-8  GNU C Library      : 2.13 stable  MATLAB Architecture: glnxa64  MATLAB Root        : /usr/local/MATLAB/R2013a  MATLAB Version     : 8.1.0.604 (R2013a)  Operating System   : Linux 3.0.0-31-generic #49-Ubuntu SMP Tue Feb 19 20:02:57 UTC 2013 x86_64  Processor ID       : x86 Family 6 Model 42 Stepping 7, GenuineIntel  Virtual Machine    : Java 1.6.0_17-b04 with Sun Microsystems Inc. Java HotSpot(TM) 64-Bit Server VM mixed mode  Window System      : The X.Org Foundation (11004000), display :0Fault Count: 1Abnormal termination:Segmentation violationRegister State (from fault):  RAX = 000000000a673ad8  RBX = 0000000008c85de8  RCX = 0000000000000000  RDX = 00000000000002a5  RSP = 00007f5fa88ba8e0  RBP = 00007f5fa88ba910  RSI = 0000000008c85de8  RDI = 0000000008c825a0   R8 = 0000000008c825a0   R9 = 0000000000003870  R10 = 0000000000003001  R11 = ffefffffffffffff  R12 = 0000000008c83ac0  R13 = 0000000008c83ac8  R14 = 00007f5fa88ba930  R15 = 0000000000000119  RIP = 00007f5f7a06e9fd  EFL = 0000000000010246   CS = 0033   FS = 0000   GS = 0000Stack Trace (from fault):[  0] 0x00007f5f7a06e9fd /usr/local/MATLAB/R2013a/toolbox/stats/classreg/+classreg/+learning/+treeutils/growTree.mexa64+00088573 _ZSt9__find_ifIN9__gnu_cxx17__normal_iteratorIPmSt6vectorImSaImEEEEN12classregtree12IndexedIsNaNIdEEET_SA_SA_T0_St26random_access_iterator_tag+00000077[  1] 0x00007f5f7a06eb29 /usr/local/MATLAB/R2013a/toolbox/stats/classreg/+classreg/+learning/+treeutils/growTree.mexa64+00088873 _ZSt9remove_ifIN9__gnu_cxx17__normal_iteratorIPmSt6vectorImSaImEEEEN12classregtree12IndexedIsNaNIdEEET_SA_SA_T0_+00000041[  2] 0x00007f5f7a085f20 /usr/local/MATLAB/R2013a/toolbox/stats/classreg/+classreg/+learning/+treeutils/growTree.mexa64+00184096[  3] 0x00007f5f7a0cf25b /usr/local/MATLAB/R2013a/toolbox/stats/classreg/+classreg/+learning/+treeutils/growTree.mexa64+00483931[  4] 0x00007f5f7a0d0580 /usr/local/MATLAB/R2013a/toolbox/stats/classreg/+classreg/+learning/+treeutils/growTree.mexa64+00488832[  5] 0x00007f5f7a0eb2c6 /usr/local/MATLAB/R2013a/toolbox/stats/classreg/+classreg/+learning/+treeutils/growTree.mexa64+00598726[  6] 0x00007f5f7a0698a3 /usr/local/MATLAB/R2013a/toolbox/stats/classreg/+classreg/+learning/+treeutils/growTree.mexa64+00067747 mexFunction+00001939[  7] 0x00007f5fb2a1bf8a     /usr/local/MATLAB/R2013a/bin/glnxa64/libmex.so+00110474 mexRunMexFile+00000090[  8] 0x00007f5fb2a180f9     /usr/local/MATLAB/R2013a/bin/glnxa64/libmex.so+00094457[  9] 0x00007f5fb2a18f1c     /usr/local/MATLAB/R2013a/bin/glnxa64/libmex.so+00098076[ 10] 0x00007f5fbc2ac6b2 /usr/local/MATLAB/R2013a/bin/glnxa64/libmwm_dispatcher.so+00562866 _ZN8Mfh_file11dispatch_fhEiPP11mxArray_tagiS2_+00000594[ 11] 0x00007f5fb2ff453a  /usr/local/MATLAB/R2013a/bin/glnxa64/libmwmcos.so+01672506[ 12] 0x00007f5fb2f9513a  /usr/local/MATLAB/R2013a/bin/glnxa64/libmwmcos.so+01282362[ 13] 0x00007f5fb2f953be  /usr/local/MATLAB/R2013a/bin/glnxa64/libmwmcos.so+01283006[ 14] 0x00007f5fb2f9712c  /usr/local/MATLAB/R2013a/bin/glnxa64/libmwmcos.so+01290540[ 15] 0x00007f5fb3002246  /usr/local/MATLAB/R2013a/bin/glnxa64/libmwmcos.so+01729094[ 16] 0x00007f5fb3081cd8  /usr/local/MATLAB/R2013a/bin/glnxa64/libmwmcos.so+02251992[ 17] 0x00007f5fbc25eaf8 /usr/local/MATLAB/R2013a/bin/glnxa64/libmwm_dispatcher.so+00244472 _ZN13Mfh_MATLAB_fn11dispatch_fhEiPP11mxArray_tagiS2_+00000488[ 18] 0x00007f5fbbb4a256 /usr/local/MATLAB/R2013a/bin/glnxa64/libmwm_interpreter.so+02245206[ 19] 0x00007f5fbbafaa86 /usr/local/MATLAB/R2013a/bin/glnxa64/libmwm_interpreter.so+01919622......

完整的崩溃转储 http://snipt.org/AlK6

现在我如何知道是我的输入导致了回归树的错误,还是与我的硬件有关?有没有办法知道错误的原因?


更新

以下是导致异常的代码行(回归树行是主要原因)

for j = 1:J    save('data');    gj = RegressionTree.fit(trainData, Y_CODE(:, j), 'Weights', wts);    g{j} = gj;end

这段代码片段是一个循环的一部分(实际上我正在尝试实现GAMBLE算法,如果你知道现有的实现那就太好了),每次Matlab在不同的迭代中崩溃…

我尝试保存工作区save('data')并在重启Matlab后重新执行回归树行,但它没有崩溃…这很奇怪。我已经向MathWorks发送了崩溃报告。

与此同时,有没有支持权重的Matlab回归树实现?或者更好的是,有没有GAMBLE提升算法的实现?

谢谢


回答:

只要你在满足发布的MATLAB系统要求的系统上运行,MathWorks的代码就不应该会像这样给你带来段错误——无论你传递什么样的输入。即使你传递的是完全无意义的输入,它也应该优雅地停止并显示MATLAB错误,而不是像这样的硬故障。

如果你能重现这种行为(在新启动的MATLAB中,没有其他程序运行,每次输入相同),请联系MathWorks支持,以发现你的系统是否有不支持的方面,或者报告一个错误。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注