Блокнот Jupyter случайным образом перестает использовать все ядра процессора - PullRequest
2 голосов
/ 25 апреля 2019

В настоящее время я выполняю простую регрессионную задачу (без библиотек ML, только мой собственный код) для домашнего задания.Проблема в том, что Jupyter иногда использует 95% + моего процессора (это хорошо, у меня есть 8600 КБ, который я хотел бы использовать), но часто решает вообще не использовать никаких дополнительных потоков и остается на постоянном уровне использования 20%.Мой цикл обратной связи увеличился в 6 раз только из-за этого.

Я искал все параметры, связанные с jupyter, которые могли бы иметь отношение, но не нашел ни одного.Есть ли объяснение этой проблемы?

РЕДАКТИРОВАТЬ: Вот код, который я сейчас использую.Переданные данные - это массив 30000x36 np.Я не знаю, как jupyter идет параллельно с этим, но эй, иногда так и получается.

def hyp(theta, X):
    return X.dot(theta)

def cost_function(theta,X,Y):
    return (1.0 / ( 2 * X.shape[0] ) )  * np.sum(  (hyp(theta, X) - Y ) ** 2 ) 


def derivative_cost_function(theta, X, Y):
    e = hyp(theta, X) - Y
    return (1.0 / X.shape[0]) * X.T.dot(e)


def GradientDescent(X, Y, maxniter=400000):

    nexamples = float(X.shape[0])

    thetas = np.ones(X.shape[1],)
    alpha = 0.001

    print("Before:", cost_function(thetas, X, Y))

    print_iter = 100
    for i in range (maxniter):

        dtheta = derivative_cost_function(thetas, X, Y)
        thetas = thetas - alpha * dtheta

        if i % print_iter == 0:
            print(i, cost_function(thetas, X, Y))

    print("After:", cost_function(thetas, X, Y))
    return thetas

1 Ответ

1 голос
/ 25 апреля 2019

Это больше похоже на проблему с нюансами, чем на проблему с юпитером. Посмотрите на https://roman -kh.github.io / numpy-multicore / , чтобы numpy использовал больше ядер.

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