Python 3.x ValueError:加载.pkl文件时不允许负维度

Python 3.x ValueError:加载.pkl文件时不允许负维度,python-3.x,scikit-learn,pickle,joblib,Python 3.x,Scikit Learn,Pickle,Joblib,尽管有许多错误ValueError的问题线程:不允许负维度 我找不到我问题的答案 使用SGDclassifer训练后的机器学习模型 clf=linear_model.SGDClassifier(loss='log',random_state=20000,verbose=1,class_weight='balanced') model=clf.fit(X,Y) X的尺寸为(1651880246177) 下面的代码正在工作,即在保存模型对象和使用模型进行预测时 joblib.dump(模型'tra

尽管有许多错误
ValueError的问题线程:不允许负维度
我找不到我问题的答案

使用SGDclassifer训练后的机器学习模型

clf=linear_model.SGDClassifier(loss='log',random_state=20000,verbose=1,class_weight='balanced')
model=clf.fit(X,Y)
X的尺寸为(1651880246177)

下面的代码正在工作,即在保存模型对象和使用模型进行预测时

joblib.dump(模型'trainedmodel.pkl',compress=3)

prediction\u result=model.predict(x\u测试)

但加载保存的模型时出错

model=joblib.load('trainedmodel.pkl')

下面是错误消息 请帮我解决这个问题

  File "C:\Users\Taxonomy\AppData\Roaming\Python\Python36\site-packages\sklearn\externals\joblib\numpy_pickle.py", line 598, in load
    obj = _unpickle(fobj, filename, mmap_mode)

  File "C:\Users\Taxonomy\AppData\Roaming\Python\Python36\site-packages\sklearn\externals\joblib\numpy_pickle.py", line 526, in _unpickle
    obj = unpickler.load()

  File "C:\Users\Taxonomy\Anaconda3\lib\pickle.py", line 1050, in load
    dispatch[key[0]](self)

  File "C:\Users\Taxonomy\AppData\Roaming\Python\Python36\site-packages\sklearn\externals\joblib\numpy_pickle.py", line 352, in load_build
    self.stack.append(array_wrapper.read(self))

  File "C:\Users\Taxonomy\AppData\Roaming\Python\Python36\site-packages\sklearn\externals\joblib\numpy_pickle.py", line 195, in read
    array = self.read_array(unpickler)

  File "C:\Users\Taxonomy\AppData\Roaming\Python\Python36\site-packages\sklearn\externals\joblib\numpy_pickle.py", line 141, in read_array
    array = unpickler.np.empty(count, dtype=self.dtype)

ValueError: negative dimensions are not allowed

尝试使用协议4转储模型

来自python的pickle:

Python 3.4中添加了协议版本4。它增加了对非常有用的功能的支持 大型对象、酸洗更多种类的对象和一些数据格式 优化。有关改进的信息,请参阅PEP 3154 由第4号议定书提出


如果减少训练数据的大小会发生什么?(1651880246177)看起来很大,idk是否会引起问题?我已经从5300000减少到1651880,我不能再减少了。我的服务器RAM大小是128GB。我认为这应该可以处理sizeI认为在使用压缩时遇到了int溢出。可能是zlib的问题。你能试试不压缩吗?(我可以想象被腌制的文件有多大)。尝试将sklearn升级到最新版本,可能问题已经解决。即使没有压缩,我也会遇到同样的错误。我还检查了将sckit学习升级到0.21.3。无法解决问题我认为这是矩阵高度稀疏的原因。