gpt4 book ai didi

python - 多处理支持的并行循环不能嵌套在线程下方,设置 n_jobs=1

转载 作者:行者123 更新时间:2023-12-01 09:01:47 25 4
gpt4 key购买 nike

我开发了一个 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 函数):Multiprocessing backed parallel loops cannot be nested below threads

该应用程序必须只能在本地运行,我不打算将其放在网络服务器上。

我可以从 Dash 应用程序中保持并行模型拟合吗?如果可能的话,我应该如何最好地解决这个问题?

最佳答案

您使用的是 Windows 吗?我在 Windows 上遇到了完全相同的问题,所以我尝试在 Ubuntu 中运行该应用程序,它工作正常。

如果您不想搞乱虚拟机或实际正确安装它,现在可以从 Microsoft Store 在 Windows 上安装 Linux shell。它非常适合测试和开发。

编辑:GridSearchCV 似乎可以很好地处理它,但当我单独运行回归器时,我仍然收到该错误。

编辑 2:GridSearchCV 使用所有线程,但仅将其加载到 10-20%。使用 Gunicorn 运行应用程序可以解决这个问题。

gunicorn my_app:server

将以下内容添加到 my_app.py 中:

server = app.server

关于python - 多处理支持的并行循环不能嵌套在线程下方,设置 n_jobs=1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52410626/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com