同样的Python代码在Django中只需几分钟,而在shell中只需不到1秒

同样的Python代码在Django中只需几分钟,而在shell中只需不到1秒,python,django,scikit-learn,Python,Django,Scikit Learn,我有一个Python类,其中sklearn/scikit learn用于构建决策树。如果在Django shell中执行,它将在1s下运行,如python manage.shshell。然后我将从csv加载数据,并从DecisionTreeClassified调用我的类和fit函数 但是,如果我尝试将相同的代码合并到Django视图中,则需要6分钟和6 GB的RAM才能完成 是否涉及线程/多进程 更新: 我不认为代码是问题,而是Django环境或WSGI是原因。但是,以下是一些代码: def m

我有一个Python类,其中sklearn/scikit learn用于构建决策树。如果在Django shell中执行,它将在1s下运行,如
python manage.shshell
。然后我将从csv加载数据,并从DecisionTreeClassified调用我的类和
fit
函数

但是,如果我尝试将相同的代码合并到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.p‌​arams.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

如果你的代码没有更精确的信息,你很难回答你的问题。你试过了吗?完全有可能你的模板被严重破坏了。至少添加一些
print time.time()
语句,看看它调用的
myfit()
是否会变慢,或者它周围的所有Django积垢。我知道它在哪里卡住(请查看代码摘录),但是我很难理解为什么它只发生在Django中。您确定您在CLI和Django API中传递的数据相同吗?