sklearn.model_selection 无法加载 DLL

Posted

技术标签:

【中文标题】sklearn.model_selection 无法加载 DLL【英文标题】:sklearn.model_selection fails to load DLL 【发布时间】:2018-10-10 02:17:00 【问题描述】:

我正在尝试使用 sklearn 并不断收到 DLL 加载错误的 tensorflow 示例。为了调试,我已将代码缩减到最低限度:

    import sklearn
    print(sklearn.__version__)
    from sklearn.model_selection  import train_test_split
    #from sklearn.cross_validation import train_test_split
    print('Success')

如您所见,我使用的是 0.19.1 的 sklearn。我在使用 Winpython 安装程序安装了 Python 3.5(64 位)的 Windows 64b 机器上。该安装程序附带 numpy、scikit 等,但我使用 pip 来确保它们(特别是 sklearn)是最新版本的。

出于好奇,我尝试了 0.18.1 之前 sklearn 版本的 model_selection 的代码(sklearn.cross_validation,现已注释掉),它给出了与该行完全相同的错误。

model_selection 的文件夹是正确的,并且对应于正确的 Python 版本。我以前在这台机器上安装过 Python 2.7 和 Python 3.6,但后来卸载/删除了它们。

感谢大家的帮助!我渴望进入一些 tensorflow 教程。

输出/错误日志是:

    0.19.1

Traceback (most recent call last):
File "C:\Users\cmacd\eclipse-workspace\NeuralNetwork1\Edureka_NN_Example.py", line 9, in <module>
from sklearn.model_selection  import train_test_split
File "C:\Python64_35\WinPython\python-3.5.4.amd64\lib\site-packages\sklearn\model_selection\__init__.py", line 19, in <module>
from ._validation import cross_val_score
File "C:\Python64_35\WinPython\python-3.5.4.amd64\lib\site-packages\sklearn\model_selection\_validation.py", line 29, in <module>
from ..metrics.scorer import check_scoring, _check_multimetric_scoring
File "C:\Python64_35\WinPython\python-3.5.4.amd64\lib\site-packages\sklearn\metrics\__init__.py", line 33, in <module>
from . import cluster
File "C:\Python64_35\WinPython\python-3.5.4.amd64\lib\site-packages\sklearn\metrics\cluster\__init__.py", line 20, in <module>
from .unsupervised import silhouette_samples
File "C:\Python64_35\WinPython\python-3.5.4.amd64\lib\site-packages\sklearn\metrics\cluster\unsupervised.py", line 12, in <module>
from ..pairwise import pairwise_distances
File "C:\Python64_35\WinPython\python-3.5.4.amd64\lib\site-packages\sklearn\metrics\pairwise.py", line 30, in <module>
from .pairwise_fast import _chi2_kernel_fast, _sparse_manhattan

ImportError: DLL load failed: The specified module could not be found.

【问题讨论】:

【参考方案1】:

事实证明,Tensorflow 对 CPU 中的 AVX 指令集有未记录的要求。我通过将计算机升级到 i5 第 2 代 CPU 解决了这个问题。据我了解,从第 2 代开始的任何 i3、i5、i7 都与 Tensorflow 兼容。

我猜这只是一个问题,因为我只使用了 Tensorflow 的 CPU 版本,而使用 GPU 版本的开发人员不会出现此错误。

【讨论】:

以上是关于sklearn.model_selection 无法加载 DLL的主要内容,如果未能解决你的问题,请参考以下文章

sklearn.model_selection 无法加载 DLL

sklearn.model_selection.train_test_split 用法

sklearn.model_selection.cross_val_score的score函数公式是啥?

我无法导入 sklearn.model_selection.train_test_split

No module named ‘sklearn.model_selection‘问题解决

jupyter notebook 中没有名为 sklearn.model_selection 的模块