python - 使用 joblib.load 从磁盘读取 xgboost 模型时出现类型错误
问题描述
我只是想通过(按预期返回)读取XGBoost
模型:joblib
os.path.exists(self._classifier_xgboost_path)
True
self._xgboost_model = joblib.load(self._classifier_xgboost_path)
但是,我收到以下错误:
File "/home/iai/Desktop/barak_8/main.py", line 150, in <module>
main()
File "/home/iai/Desktop/barak_8/main.py", line 32, in main
classifier = Classifier(config=config)
File "/home/iai/Desktop/barak_8/classifiers.py", line 56, in __init__
if os.path.exists(self._classifier_xgboost_path) \
File "/home/iai/Desktop/barak_8/venv/lib/python3.6/site-packages/joblib/numpy_pickle.py", line 585, in load
obj = _unpickle(fobj, filename, mmap_mode)
File "/home/iai/Desktop/barak_8/venv/lib/python3.6/site-packages/joblib/numpy_pickle.py", line 504, in _unpickle
obj = unpickler.load()
File "/usr/lib/python3.6/pickle.py", line 1050, in load
dispatch[key[0]](self)
File "/usr/lib/python3.6/pickle.py", line 1323, in load_newobj
obj = cls.__new__(cls, *args)
TypeError: NoneType.__new__(X): X is not a type object (NoneType)
版本:
Python 3.6
xgboost 1.3.1
joblib 1.0.0
解决方案
这很可能是由于缺少 xgboost 模型的一些依赖导入造成的。我今天早些时候遇到了这个问题,就我而言,这是由于环境中缺少导入造成的。scikit-learn
我在我的环境中失踪了。
推荐阅读
- bash - 让 Git 在 Web 主机上使用 VSCode 和文件的问题
- java - 推送到私有 Gitlab 时自动更新 Nexus Repository Manager 上的项目
- android - ViewModel 返回 ArrayList 大小为零
- html - 在闪亮中设置小部件与其标题(文本)之间的距离
- excel - 更新 Excel ListObject 标题名称而不破坏枢轴
- ios - 如何使用 APNs 密钥 (.p8) 为 iOS 应用程序配置推送通知
- r - ggplot 调用更改区域设置 LC_NUMERIC 变量
- javascript - JavaScript OOP - 符号混淆
- reactjs - 如何检查递归路径Url是否在反应路由器中
- powerbi - 客户产品购买交叉口(powerBI)