我有 Python 类,其中 sklearn/scikit-learn 用于构建决策树。如果我在 Django shell 中执行,它会在 1 秒内运行,例如python manage.sh shell
. fit
然后我会从 csv 加载数据并从 DecisionTreeClassified调用我的类和函数。
但是,如果我尝试将相同的代码合并到 Django 视图中,则需要 6 分钟。和 6 GB 的 RAM 完成。
是否涉及线程/多进程?
更新:我不认为代码是问题,而是 Django 环境或 WSGI 是原因。但是,这里有一些代码:
def myfit:
dt=tree.DecisionTreeClassifier(criterion='gini', splitter='best', min_samples_split=2,min_samples_leaf=n*self.params.min_category,max_depth=self.params.max_depth,max_features=None, random_state=None, min_density=None, compute_importances=None)
dt.fit(x_i,y)
start_time=time.time()
dt.predict_proba(x_i)[:,1] #takes ages here
print time.time() - start_time, "seconds"
#Django - 301.682538033 seconds, Cli - 0.06 seconds