我尝试在具有以下大小的数据集上训练LS-SVM分类器:
训练数据集:TS = 48000x12(双)
组:G = 48000x1(双)
Matlab培训代码是:
class = svmtrain(TS,G,'method','LS',...
'kernel_function','rbf','boxconstraint',C,'rbf_sigma',sigma);
然后,我收到此错误消息:
使用svmtrain时出错(第516行)
评估内核函数'rbf_kernel'时出错。
引起:
使用repmat时出错
内存不足。键入HELP MEMORY以获取选项。
请注意,物理内存的大小为4Gb,当我减少数据集训练大小时,它会起作用。因此,如果有任何解决方案具有相同的数据大小,当然不需要添加物理内存。
答案 0 :(得分:1)
看来,实现需要计算整个Gram矩阵,它是N x N(其中N - 样本数)的大小,在你的情况下是2,304,000,000
,现在每个都由32位浮点数,意味着它需要至少4个字节,这需要9,216,000,000
个字节,大约只有9GB
个数据,仅用于Gram(内核)矩阵。
有两种选择: