Ковариационная функция - Недостаточно памяти - PullRequest
0 голосов
/ 04 ноября 2018

Я пытаюсь выполнить PCA для набора данных MNIST. Пока у меня есть следующий код.

...load data into MATLAB

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

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

Попытка сделать это дает мне следующий ответ:

Недостаточно памяти. Введите «help memory» для ваших вариантов.

Ошибка в cov (строка 155) c = (xc '* xc) ./ denom;

Ошибка в PCA (строка 27) ковариация = cov (imagesShifted);

imagesShifted - двойная матрица 784x60000.

Я использую MacBook Pro 2015 с 16 ГБ ОЗУ, процессором 2,8 ГГц и выделенной видеокартой.

Я посмотрел в меню справки для команды памяти, но информация только кажется, относящиеся к машинам Windows. Также просматривал веб-сайт MathWorks для решения проблем с нехваткой памяти, но не знал, как действовать на основе этой информации.

Как мне обойти эту проблему?

1 Ответ

0 голосов
/ 04 ноября 2018

Для больших наборов данных я предлагаю вам использовать функцию princomp в matlab с активированным флагом 'econ'.

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

Или функция pca с флагом «Economy» или с указанием «NumComponents», которые вы хотите.

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

...