我尝试加载已保存的SVM模型时遇到此错误。我尝试卸载sklearn,NumPy和SciPy,然后再次重新安装最新版本(使用pip)。我仍然收到此错误。为什么?
In [1]: import sklearn; print sklearn.__version__
0.18.1
In [3]: import numpy; print numpy.__version__
1.11.2
In [5]: import scipy; print scipy.__version__
0.18.1
In [7]: import pandas; print pandas.__version__
0.19.1
In [10]: clf = joblib.load('model/trained_model.pkl')
---------------------------------------------------------------------------
RuntimeWarning Traceback (most recent call last)
<ipython-input-10-5e5db1331757> in <module>()
----> 1 clf = joblib.load('sentiment_classification/model/trained_model.pkl')
/usr/local/lib/python2.7/dist-packages/sklearn/externals/joblib/numpy_pickle.pyc in load(filename, mmap_mode)
573 return load_compatibility(fobj)
574
--> 575 obj = _unpickle(fobj, filename, mmap_mode)
576
577 return obj
/usr/local/lib/python2.7/dist-packages/sklearn/externals/joblib/numpy_pickle.pyc in _unpickle(fobj, filename, mmap_mode)
505 obj = None
506 try:
--> 507 obj = unpickler.load()
508 if unpickler.compat_mode:
509 warnings.warn("The file '%s' has been generated with a "
/usr/lib/python2.7/pickle.pyc in load(self)
862 while 1:
863 key = read(1)
--> 864 dispatch[key](self)
865 except _Stop, stopinst:
866 return stopinst.value
/usr/lib/python2.7/pickle.pyc in load_global(self)
1094 module = self.readline()[:-1]
1095 name = self.readline()[:-1]
-> 1096 klass = self.find_class(module, name)
1097 self.append(klass)
1098 dispatch[GLOBAL] = load_global
/usr/lib/python2.7/pickle.pyc in find_class(self, module, name)
1128 def find_class(self, module, name):
1129 # Subclasses may override this
-> 1130 __import__(module)
1131 mod = sys.modules[module]
1132 klass = getattr(mod, name)
/usr/local/lib/python2.7/dist-packages/sklearn/svm/__init__.py in <module>()
11 # License: BSD 3 clause (C) INRIA 2010
12
---> 13 from .classes import SVC, NuSVC, SVR, NuSVR, OneClassSVM, LinearSVC, \
14 LinearSVR
15 from .bounds import l1_min_c
/usr/local/lib/python2.7/dist-packages/sklearn/svm/classes.py in <module>()
2 import numpy as np
3
----> 4 from .base import _fit_liblinear, BaseSVC, BaseLibSVM
5 from ..base import BaseEstimator, RegressorMixin
6 from ..linear_model.base import LinearClassifierMixin, SparseCoefMixin, \
/usr/local/lib/python2.7/dist-packages/sklearn/svm/base.py in <module>()
6 from abc import ABCMeta, abstractmethod
7
----> 8 from . import libsvm, liblinear
9 from . import libsvm_sparse
10 from ..base import BaseEstimator, ClassifierMixin
__init__.pxd in init sklearn.svm.libsvm (sklearn/svm/libsvm.c:10207)()
RuntimeWarning: numpy.dtype size changed, may indicate binary incompatibility. Expected 96, got 80
更新: 确定,请按照此处和
pip uninstall -y scipy scikit-learn
pip install --no-binary scipy scikit-learn
该错误现在消失了,尽管我仍然不知道为什么会首先发生该错误…
根据MAINT:沉默有关更改dtype / ufunc大小的Cython警告。-numpy /
numpy
:
每当您导入针对比已安装的numpy早的numpy编译的scipy(或其他软件包)时,这些警告都是可见的。
支票由Cython插入(因此,任何用它编译的模块中都存在)。
长话短说, 这些警告在的特定情况下应该是良性的numpy
,并且 由于numpy 1.8
(此提交进入的分支),
这些消息已被过滤掉 。而scikit-learn 0.18.1
针对编译numpy 1.6.1
。
要自己过滤这些警告
,可以执行与补丁相同的操作:
import warnings
warnings.filterwarnings("ignore", message="numpy.dtype size changed")
warnings.filterwarnings("ignore", message="numpy.ufunc size changed")
当然, 你可以重新html" target="_blank">编译从源代码的所有受影响的模块对当地numpy
有pip install --no-binary :all:
¹
,而不是 如果你有
球
该工具。
更长的故事:补丁程序的支持者声称专门针对numpy
,应该没有风险,并且第3方软件包是有意针对较早版本构建的:
[针对当前的numpy重建所有内容]不是可行的解决方案,当然也没有必要。Scipy(与许多其他软件包一样)与numpy的许多版本兼容。因此,当我们分发scipy二进制文件时,我们将根据支持的最低numpy版本(截至目前为1.5.1)构建它们,并且它们也可以与1.6.x,1.7.x和numpy
master一起使用。真正的正确之处在于,Cython仅在dtypes / ufuncs的大小发生改变而破坏ABI时才发出警告,否则保持沉默。
结果,Cython的开发人员同意信任numpy团队手工维护二进制兼容性,因此我们可以期望使用具有破坏性的ABI更改的版本会产生特制的异常或某些其他显式的阻止程序。
¹自以来,先前可用的--no- use-wheel
选项已被删除。pip 10.0.0
我想知道是否有一种方法可以在VSCode中格式化javascript时更改缩进大小。 我发现这个git提交为JS添加了很多格式选项,但我看不到任何更改缩进大小的能力。 有人知道怎么做吗? --编辑-- 我已经尝试在编辑器底部改变缩进大小。工具栏图像(还不能嵌入图像...) 我还尝试更改检测缩进设置。 但是当我格式化时,它仍然使用两个空格。
问题内容: 我正在使用appengine-maven-plugin构建我的Java Google App Engine项目。 我在WEB-INF子文件夹中包含.p12证书 当我构建应用程序时,证书的文件大小增加了几KB。这使其无效。我也看到过同样的情况。jks证书。 我已经验证了证书预构建的有效性,并使用相同的方法来确认构建后证书的有效性。 谁能告诉我为什么文件大小在变化,为什么不将其简单地复制到
问题内容: 我有一个计划用于废料堆的旧可执行文件,但是还不存在。它依赖于已经从我的环境中删除的一些库,但是我在某些可以正常工作的地方有一些存根库。我想将此可执行文件指向这些存根库。是的,我可以设置LD_LIBRARY_PATH,但是许多脚本都调用了此可执行文件,许多用户也希望将其修复在一处。 我没有这个来源,很难得到它。我在想- 是否可以使用支持ELF的编辑器编辑此文件,并向rpath添加一个简单
它要做什么 该设置指定了 FreeMarker 的版本号,那么就不会100%向后兼容bug修复和改进 你想要启用 已经实现的内容。 通常来说,默认把它留在2.3.0(最大向后兼容版本)是一个坏主意。 在新项目中,应该将它设置为实际使用的FreeMarker版本号。 而在老项目中,那么最好也将它设置的高一些,最好检查一下哪些修改是激活状态(可以在 Configuration(Version) 构造方
我可以运行这个程序,但由于某些原因,它会显示/放置随机字符,而不是二进制的初始值,而且我似乎无法将程序从十进制运行回二进制。我该如何改进这些代码。要明确说明它不会将二进制转换为十进制,我将如何将其转换回十进制转换为二进制,如果有一些代码可以帮助我,将不胜感激。
我对如何在二叉查找树中排列节点的顺序有点困惑。左边的二叉查找树中的子树节点能比根节点大吗? 例如,以下内容会是二叉搜索树吗? 上面让我困惑的是1(3)的右子树是否可以大于原始根节点(2)。