ERROR SVMCLASSIFY MATLAB内存不足

时间:2013-06-11 13:44:12

标签: matlab classification svm

我在Matlab中有这个脚本

struct = svmTraining(feature_train,class_final_train);

svmclassify(结构,feature_test);

但是,5秒后会出现以下消息

???使用==>时出错svmclassify at 117 分类期间遇到错误。 内存不足。键入HELP MEMORY以获取选项。

帮助我,谢谢

2 个答案:

答案 0 :(得分:1)

我能够通过在测试数据的连续子集上调用svmclassify()函数来为自己解决同样的问题。出于某种原因,如果你给它一大堆测试数据,它需要大量的内存。

所以这里有一些对我有用的东西

numExemplars = size(testData,1);
chunkSize = 1000;
j=1:chunkSize:numExemplars;
classifications = zeros(numExemplars,1);  %initialize
for i=1:length(j)-1;
    index1 = j(i);
    index2 = j(i+1)-1;
    fprintf('classifying exemplars %d to %d\n', index1, index2 );
    chunk = testData(index1:index2,:);
    classifications(index1:index2) = svmclassify(SVM_struct,chunk);
end
% last bit of data
chunk = testData(j(end):numExemplars,:);
classifications(j(end):numExemplars) = svmclassify(SVM_struct,chunk);

答案 1 :(得分:0)

错误表示您的计算机上没有足够的可用内存来执行分类。

首先,尝试使用新启动的MATLAB重复命令,而不创建任何超出必要的变量,并且没有其他应用程序在运行。

如果这不起作用,那么基本上你需要使用较小的数据集,或者为你的机器获得更多的内存。