【问题标题】:Covariance function - Out of memory协方差函数 - 内存不足
【发布时间】:2018-11-04 09:47:23
【问题描述】:

我正在尝试对 MNIST 数据集执行 PCA。到目前为止,我有以下代码。

...load data into MATLAB

% Centre data matrix
imagesMean = mean(images);
imagesShifted = images - imagesMean;

% Compute covariance matrix of mean shifted images
covariance = cov(imagesShifted);

尝试这样做会给我以下响应:

内存不足。为您的选项键入“帮助记忆”。

cov 中的错误(第 155 行)c = (xc' * xc) ./denom;

PCA 中的错误(第 27 行)协方差 = cov(imagesShifted);

imagesShifted 是一个 784x60000 双矩阵。

我使用的是 MacBook Pro 2015,配备 16GB RAM、2.8 GHz 处理器和专用显卡。

我查看了 memory 命令的帮助菜单,但该信息似乎只与 Windows 机器相关。还查看了 MathWorks 网站以解决内存不足问题,但不确定如何根据该信息继续操作。

我该如何解决这个问题?

【问题讨论】:

  • 您需要 60,000x60,000 矩阵输出还是 784x784 矩阵输出?如果是这样,您需要在放入协方差函数之前转置矩阵。另外,MATLAB 有一个专用的 pca 函数mathworks.com/help/stats/pca.html

标签: matlab statistics pca covariance


【解决方案1】:

对于大数据集,建议你使用matlab的princomp函数,开启'econ'标志。

https://es.mathworks.com/help/stats/princomp.html

或者带有“经济”标志的 pca 函数或表示您希望的“NumComponents”。

https://es.mathworks.com/help/stats/pca.html

【讨论】:

  • princomp 已被删除
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-05
相关资源
最近更新 更多