0

私はMatlabにこのスクリプトを持っています

struct = svmTraining(feature_train,class_final_train);

svmclassify(struct,feature_test);

ただし、5 秒後に次のメッセージが表示されます。

??? Error using ==> svmclassify at 117 分類中にエラーが発生しました。メモリ不足です。オプションに HELP MEMORY と入力します。

助けて、ありがとう

4

2 に答える 2

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);
于 2013-09-23T22:28:08.403 に答える
0

このエラーは、分類を実行するのに十分なメモリがマシンにないことを意味します。

最初に、必要以上の変数を作成せず、他のアプリケーションを実行せずに、MATLAB を新たに起動してコマンドを繰り返してみます。

それがうまくいかない場合は、基本的に、より小さなデータセットで作業するか、マシンのメモリを増やす必要があります。

于 2013-06-11T14:23:40.643 に答える