Загрузка / скорость процессора в ноутбуках Jupyter для задач машинного обучения - PullRequest
0 голосов
/ 02 марта 2020

Я только что построил новый мощный настольный компьютер P C, чтобы ускорить вычисления в scikit Learn ( specs ).

Я запускаю свой код в Jupyter Ноутбук и я заметили, что если я выполняю одинаковые вычисления на моем старом умирающем ноутбуке и моем супер-P C, разница во времени часто невелика, хотя в некоторых очень требовательных ячейках между двумя компьютерами может варьироваться от простого до двойного ... Но мой новый P C должен быть как минимум в 5 раз мощнее моего старого ноутбука!

Пример кода с требованием:

y_train_large = (y_train >= 7)
y_train_odd = (y_train % 2 == 1)
y_multilabel = np.c_[y_train_large, y_train_odd]
knn_clf = KNeighborsClassifier()
knn_clf.fit(X_train, y_multilabel)    
y_train_knn_pred = cross_val_predict(knn_clf, X_train, y_multilabel, cv=3)
f1_score(y_multilabel, y_train_knn_pred, average="macro")

Кроме того, когда я проверяю использование процессора во время Например, обучение на классификаторах очень низкое на обоих компьютерах (около 5% на новом и 15-20% на старом).

Я понимаю, что это может быть большой вопрос, но почему это так? ? Я прочитал здесь , что ноутбуки Jupyter работают на хост-компьютере, а не на моем. Как использовать собственное оборудование вместо этого? Я, вероятно, ищу неправильный путь, но я не могу найти много информации на эту тему. Что искать?

Спасибо!

Отчет о времени для кода выше с небольшим изменением настройки n_jobs = 4 для cross_val_predict ():

Время вычислений для AMD Ryzen 9 3900x 12 ядер, RAM 32 Go: 12'45 '' ок. средняя загрузка ЦП 15%

Время вычислений для Intel i7 4750HQ @ 2,00 ГГц, ОЗУ 16 Go: 19'50 '' прибл. средняя загрузка процессора 62%

1 Ответ

0 голосов
/ 04 марта 2020

ОК, поэтому для этого конкретного фрагмента кода увеличение параметра n_jobs в cross_val_predict () до n_jobs = 4 дает хорошее улучшение, но мне все еще неясно:

  • Как перейти к другим задачи машинного обучения?
  • Существуют ли другие параметры для настройки, чтобы получить еще лучшие результаты, чем этот?
  • Как далеко мы можем go с n_jobs, как оценить лучшие n_jobs для заданная задача, как узнать, когда мы go слишком далеко и процессор находится в опасности?

Любой специалист по этим вопросам все еще может ответить:)

...