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