Tag: scikit learn

当我从scikit-learn中导入某些东西时,我有一个疯狂的上下文切换

我们正在使用scikit-learn来find类似的图像集群。 我们希望有一个内部的API,但是当我们从scikit导入对象或使用它时,我们会得到非常多的上下文切换。 这些import中的任何一个都创造了很多: from sklearn.neighbors import NearestNeighbors from sklearn.externals.joblib import load from sklearn.decomposition import PCA from sklearn.externals import joblib 这里是我们的程序重新启动过程中的vmstat 1输出。 我们在导入之前和之后添加了一些睡眠,并将大量的上下文切换到这些行。 但是,当我们在处理3GB NearestNeighbors对象中的数字的时候,我们看到上下文切换的大幅度增加。 您绝对可以发现我们发送给我们的API的3个查询。 以下是对增长的看法: def reduce_dimensions(self, dataset): return self.dim_obj.transform(dataset) def get_closest_cluster(self, input_data): indexs_with_distance = self.cluster_obj.radius_neighbors(X=input_data, radius=self.radious, return_distance=True) return self.get_ordered_indexs(indexs_with_distance) 这发生在我们用我们的笔记本电脑运行我们的docker撰写的设置,以及当我们在docker上运行它时。 networking应用程序是用Flask写的,并与gunicorn。 有什么办法告诉scikit与这些上下文切换更足智多谋? 我们的pipe理员担心会降低部署到相同节点的所有应用程序。 我们正在使用Python 3.6和scikit-learn 0.19.1

Sci-kit SVC:random_state在mac和我的docker镜像上产生不同的结果

我有一个在我的MAC上运行的Python程序,具有以下依赖关系: numpy的== 1.11.2 SciPy的== 0.18.1 scikit学习== 0.17.1 pymongo == 3.4.0 Redis的== 2.10.5 请求== 2.12.3 我试图根据一些训练数据来分类句子。 然后我想用Docker镜像部署这个python包。 使用SVCalgorithm numpy.random.seed(100) 分类器= SVC(概率=真,随机状态= 100) 这在Docker和我的本地系统中产生了不同的结果。 Python版本在两种环境下都是2.7.13。 有没有办法设置一个种子,以便我可以在我的本地环境中获得与我部署的环境相同的结果? 如果我将其安装在同事的MAC上,结果与我的本地环境一致。 这使我相信随机数发生器不是操作系统无关的。 任何方式来得到它? 感谢和美好的一天