Сокращение массива numpy для линейного преобразования в LMNN для лучшего использования памяти - PullRequest
0 голосов
/ 16 апреля 2020

В настоящее время у меня есть массив данных numpy, который составляет 100 000 строк x 20 столбцов. Я пытаюсь использовать пакет metric_learn для изучения матрицы Махаланобиса для преобразования LMNN.

Однако, когда я пытаюсь выполнить подгонку и преобразовываю данные с помощью:

# fit lmnn model to training data
# transform training data
X_train_transformed = lmnn.fit_transform(X_train, y_train)

, я получаю ошибку сегментации из-за использования памяти как на моем локальном процессоре, так и на Google Colab High. ОЗУ.

Кажется, что есть два возможных решения:

  1. Я не уверен, что это теоретически возможно, но я мог бы потенциально разделить тренировочные данные на блоки преобразование каждого в отдельности, извлечение матриц Махаланобиса для отдельных блоков из преобразований и повторная сборка преобразованного набора данных, а также матрицы Махаланобиса из преобразованных матриц блоков и блочных матриц Махаланобиса. Возможно ли это?

  2. Используйте некоторый другой менеджер пакетов / памяти для разделения операций и набора данных, который сохраняет действительность алгоритма LMNN.

Любой совет будет приветствоваться!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...