Arhn - архитектура программирования

Многопроцессорные параллельные циклы не могут быть вложены ниже потоков, установка n_jobs = 1

Я разработал скрипт Python, который в основном читает файл excel и обучает модель с помощью sklearns GridSearchCV, используя оператор n_jobs:

def create_table():
    my_model = GridSearchCV(GradientBoostingRegressor(), tuned_parameters, cv=5, scoring='neg_mean_absolute_error', n_jobs=7)
    my_model.fit(x_data, y_data)
    return(my_model.predict(new_x_data))

Это отлично работает при его выполнении. Но теперь я пытаюсь выполнить его одним нажатием кнопки в приложении Dash.

Multiprocessing backed parallel loops cannot be nested below threads, setting n_jobs=1

Мое приложение Dash выглядит так:

def generate_html_table(dataframe, max_rows=50):
    return html.Table(
    # Header
    [html.Tr([html.Th(col) for col in dataframe.columns])] +

    # Body
    [html.Tr( [html.Td(dataframe.index[i])] + [html.Td(dataframe.iloc[i][col]) for col in dataframe.columns]) for i in range(min(len(dataframe), max_rows))]
    )

app = dash.Dash()
app.layout = html.Div([
    html.H1(children='Region Forecast',
        style={'textAlign': 'center'} ),
    html.Button(id='submit-button', n_clicks=0, children='Submit',
            style={ 'margin': 'auto',
                    'display': 'block' }),
    html.Table(id='output-table', children = generate_html_table(pd.DataFrame()))
    ])

@app.callback(Output('output-table', 'children'),
        [Input('submit-button', 'n_clicks')])

def reactive_compute(n_clicks):
    print('inside reactive compute')
    my_table = create_my_table()
    return(generate_html_table(my_table))

if __name__ == '__main__':
    app.run_server(debug=True)

Я видел этот вопрос, но он мне не помогает, потому что я сам не обрабатываю многопроцессорность (это функция scikitlearn): Многопроцессорные параллельные циклы не могут быть вложены ниже потоков

Приложение должно работать только локально, я не планирую размещать его на веб-сервере.

Могу ли я сохранить подгонку параллельной модели из приложения Dash, и если это возможно, как лучше всего к этому подойти?


Ответы:


1

Вы используете Windows? У меня точно такая же проблема в Windows, поэтому я попытался запустить приложение в Ubuntu, и оно отлично работает.

В настоящее время вы можете установить оболочку Linux в Windows из Магазина Microsoft, если вы не хотите возиться с виртуальными машинами или устанавливать ее правильно. Он отлично подходит для тестирования и разработки.

Изменить: GridSearchCV, кажется, справляется с этим нормально, но я все еще получаю эту ошибку, когда запускаю регрессор сам по себе.

Редактировать 2: GridSearchCV использовал все потоки, но загружал их только на 10-20%. Запуск приложения с помощью gunicorn решает эту проблему.

gunicorn my_app:server

также добавьте ниже в my_app.py:

server = app.server
12.10.2018
Новые материалы

Коллекции публикаций по глубокому обучению
Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

Представляем: Pepita
Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

Советы по коду Laravel #2
1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

3 способа решить квадратное уравнение (3-й мой любимый) -
1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

Создание VR-миров с A-Frame
Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

Демистификация рекурсии
КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..