使用 scikit-learn ,训练一个随机森林。所有的数据都在内存里,但是训练时间还是很长,但是看任务管理器里面,CPU 占用一直 40%,不是应该 100%吗?是不是 Python GIL 的问题?怎么样才可以提速?
1
czfy 339 天前
1. 你用的是什么 CPU
2. 占用 40%,具体是 1 核有难多核围观,还是每个核都有占用 3. 最好还是把代码列出来 |
2
Yuanlaoer 339 天前
所有数据都在“内存”里,“CPU”占用一直 40%
内存,CPU |
3
QiShine OP ```
# transform list into array train = asarray(train) # split into input and output columns trainX, trainy = train[:, :-1], train[:, -1] # fit model model = RandomForestRegressor(n_estimators=1000) model.fit(trainX, trainy) # make a one-step prediction yhat = model.predict([testX]) return yhat[0] ``` |
4
czfy 339 天前
你也没说全
先试试在 import 之后加一行 n_jobs = -1 吧 或者自己看文档 https://scikit-learn.org/stable/modules/ensemble.html#parallelization |
5
QiShine OP @czfy 感谢回复!改成 model = RandomForestRegressor(n_estimators=1000, n_jobs=-1)之后,速度快了两倍。
|
6
czfy 335 天前 via Android
有用就好
|