如果给定某个分类器(SVC / Forest / NN / 等),是否可以在不同的线程中同时对同一个实例调用.predict
?
从远处看,我猜测它们不会改变任何内部状态。但是我在文档中没有找到相关说明。
下面是一个最简示例来说明我的意思:
#!/usr/bin/env python3
import threading
from sklearn import datasets
from sklearn import svm
from sklearn.ensemble import RandomForestClassifier
from sklearn.neural_network import MLPClassifier
X, y = datasets.load_iris(return_X_y=True)
# Some model. Might be any type, e.g.:
clf = svm.SVC()
clf = RandomForestClassifier(),
clf = MLPClassifier(solver='lbfgs')
clf.fit(X, y)
def use_model_for_predictions():
for _ in range(10000):
clf.predict(X[0:1])
# Is this safe?
thread_1 = threading.Thread(target=use_model_for_predictions)
thread_2 = threading.Thread(target=use_model_for_predictions)
thread_1.start()
thread_2.start()