В настоящее время у меня есть массив данных 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. ОЗУ.
Кажется, что есть два возможных решения:
Я не уверен, что это теоретически возможно, но я мог бы потенциально разделить тренировочные данные на блоки преобразование каждого в отдельности, извлечение матриц Махаланобиса для отдельных блоков из преобразований и повторная сборка преобразованного набора данных, а также матрицы Махаланобиса из преобразованных матриц блоков и блочных матриц Махаланобиса. Возможно ли это?
Используйте некоторый другой менеджер пакетов / памяти для разделения операций и набора данных, который сохраняет действительность алгоритма LMNN.
Любой совет будет приветствоваться!