Использование rbf_kernel с двумя массивами 2D numpy приводит к смерти ядра Python 3 - PullRequest
0 голосов
/ 25 марта 2020

Я пытаюсь вычислить максимальное среднее расхождение между двумя наборами данных, X, Y, где записи X, Y имеют тип numpy.float64. Часть этого вычисления включает вычисление всех попарно произведенных точек между X and X с использованием некоторой функции ядра. В этом случае я хочу использовать sklearn.metrics.pairwise.rbf_kernel из sklearn. Используя Jupyter, следующий код заставляет ядро ​​Python 3 d ie через ~ 30 секунд, а затем предлагает мне перезапустить его (я показываю два разных метода, которые заставляют ядро ​​d ie):

import sklearn as sklearn
from sklearn.metrics.pairwise import pairwise_kernels

def mmd(X, Y):

    # X.shape -> (922315, 14)
    # type(X) -> <class 'numpy.ndarray'>

    # Kernel dies here
    Kxx = sklearn.metrics.pairwise.rbf_kernel(X, X)

    # Kernel also dies using this
    Kxx = pairwise_kernels(X, X, metric='rbf')
    .
    .
    .

Является ли X слишком большим, чтобы выполнить это вычисление? Если так, как я могу обойти это? Поскольку я использую Anaconda в качестве менеджера пакетов, я запустил conda update --all на случай, если это было вызвано ошибкой, но это не помогло решить проблему.

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