Python sklearn.externals joblib抛出ImportError-服务器上没有名为joblib.numpy_pickle的模块
我正在努力解决一个就业问题 我需要将推理应用程序推送到远程服务器,还需要加载一个保存的标准定标器,因为如果我尝试适应,就会出现内存不足异常。我无法对服务器进行物理更改,因为它是一个sap cloud foundry实例,我看不到解决方法 从服务器回溯:Python sklearn.externals joblib抛出ImportError-服务器上没有名为joblib.numpy_pickle的模块,python,scikit-learn,sap-cloud-platform,Python,Scikit Learn,Sap Cloud Platform,我正在努力解决一个就业问题 我需要将推理应用程序推送到远程服务器,还需要加载一个保存的标准定标器,因为如果我尝试适应,就会出现内存不足异常。我无法对服务器进行物理更改,因为它是一个sap cloud foundry实例,我看不到解决方法 从服务器回溯: 2019-08-05T15:34:41.54+0200 [APP/PROC/WEB/0] ERR File "app.py", line 40, in <module> 2019-08-05T15:34:41.54+0
2019-08-05T15:34:41.54+0200 [APP/PROC/WEB/0] ERR File "app.py", line 40, in <module>
2019-08-05T15:34:41.54+0200 [APP/PROC/WEB/0] ERR standard_scaler = joblib.load('./datascaler.save')
2019-08-05T15:34:41.54+0200 [APP/PROC/WEB/0] ERR File "/home/vcap/deps/0/python/lib/python2.7/site-packages/sklearn/externals/joblib/numpy_pickle.py", line 598, in load
2019-08-05T15:34:41.54+0200 [APP/PROC/WEB/0] ERR obj = _unpickle(fobj, filename, mmap_mode)
2019-08-05T15:34:41.54+0200 [APP/PROC/WEB/0] ERR File "/home/vcap/deps/0/python/lib/python2.7/site-packages/sklearn/externals/joblib/numpy_pickle.py", line 526, in _unpickle
2019-08-05T15:34:41.54+0200 [APP/PROC/WEB/0] ERR obj = unpickler.load()
2019-08-05T15:34:41.54+0200 [APP/PROC/WEB/0] ERR File "/home/vcap/deps/0/python/lib/python2.7/pickle.py", line 864, in load
2019-08-05T15:34:41.54+0200 [APP/PROC/WEB/0] ERR dispatch[key](self)
2019-08-05T15:34:41.54+0200 [APP/PROC/WEB/0] ERR File "/home/vcap/deps/0/python/lib/python2.7/pickle.py", line 1096, in load_global
2019-08-05T15:34:41.54+0200 [APP/PROC/WEB/0] ERR klass = self.find_class(module, name)
2019-08-05T15:34:41.54+0200 [APP/PROC/WEB/0] ERR File "/home/vcap/deps/0/python/lib/python2.7/pickle.py", line 1130, in find_class
2019-08-05T15:34:41.54+0200 [APP/PROC/WEB/0] ERR __import__(module)
2019-08-05T15:34:41.54+0200 [APP/PROC/WEB/0] ERR ImportError: No module named joblib.numpy_pickle
2019-08-05T15:34:41.54+0200[APP/PROC/WEB/0]错误文件“APP.py”,第40行,在
2019-08-05T15:34:41.54+0200[APP/PROC/WEB/0]ERR standard_scaler=joblib.load(“./datascaler.save”)
2019-08-05T15:34:41.54+0200[APP/PROC/WEB/0]错误文件“/home/vcap/deps/0/python/lib/python2.7/site packages/sklearn/externals/joblib/numpy_pickle.py”,第598行,已加载
2019-08-05T15:34:41.54+0200[APP/PROC/WEB/0]ERR obj=_unpickle(fobj,文件名,mmap模式)
2019-08-05T15:34:41.54+0200[APP/PROC/WEB/0]ERR File”/home/vcap/deps/0/python/lib/python2.7/site packages/sklearn/externals/joblib/numpy_pickle.py“,第526行,在“unpickle”中
2019-08-05T15:34:41.54+0200[APP/PROC/WEB/0]ERR obj=unpickler.load()
2019-08-05T15:34:41.54+0200[APP/PROC/WEB/0]错误文件“/home/vcap/deps/0/python/lib/python2.7/pickle.py”,第864行,已加载
2019-08-05T15:34:41.54+0200[APP/PROC/WEB/0]错误发送[key](self)
2019-08-05T15:34:41.54+0200[APP/PROC/WEB/0]错误文件“/home/vcap/deps/0/python/lib/python2.7/pickle.py”,第1096行,在load\u global中
2019-08-05T15:34:41.54+0200[APP/PROC/WEB/0]ERR klass=self.find_类(模块,名称)
2019-08-05T15:34:41.54+0200[APP/PROC/WEB/0]错误文件“/home/vcap/deps/0/python/lib/python2.7/pickle.py”,第1130行,在find_类中
2019-08-05T15:34:41.54+0200[APP/PROC/WEB/0]错误导入(模块)
2019-08-05T15:34:41.54+0200[APP/PROC/WEB/0]错误导入错误:没有名为joblib.numpy_pickle的模块
从我在类似帖子上看到的情况来看,joblib版本冲突/不匹配可能是一个原因,但我对此无能为力,因为发生此错误的不是我的本地机器
是否有其他方法保存定标器或解决此冲突?我也遇到此问题。可能有两个原因
joblib
加载时,使用sklearn.externals.joblib
保存的模式。(sklearn.externals.joblib和joblib是不同的lib)sklearn.externals.joblib
都用于保存和加载阶段。但是,它们是不同的版本。例如,在保存阶段scikit learn==0.19.1
,而在加载阶段scikit learn==0.21.x