У меня есть большой набор данных около 200000
точки данных, где каждая точка данных содержит 132
функции. Так что в основном мой набор данных 200000 x 132
,
Я сделал все вычисления, используя броненосец каркас. Тем не менее, я попытался выполнить анализ PCA, но я получил ошибку памяти, которую я не знаю, что это из-за моей оперативной памяти (8 ГБ оперативной памяти) или ее ограничение из-за самой платформы.
Я получаю следующую ошибку: requested size is too large
,
Можете ли вы порекомендовать мне другую платформу для вычисления PCA, которая не имеет ограничений по размеру / памяти?
Или, если вы ранее использовали armadillo для вычисления PCA и столкнулись с этой проблемой, можете ли вы рассказать мне, как вам удалось ее решить?
Вы, вероятно, должны включить использование 64-битные целые числа в Armadillo, которые используются для хранения общего количества элементов и т. д.
В частности, отредактируйте файл
включают в себя / armadillo_bits / config.hpp
и раскомментируйте строку с: // #define ARMA_64BIT_WORD
,
В версии 3.4 это должно быть около линии 59.
Кроме того, вы можете определить ARMA_64BIT_WORD, прежде чем включать заголовок Armadillo в вашу программу, например:
#define ARMA_64BIT_WORD
#include <armadillo>
#include <iostream>
...
Обратите внимание, что ваш компилятор C ++ должен уметь обрабатывать 64-битные целые числа. У большинства компиляторов в эти дни есть это.
Других решений пока нет …