본문 바로가기

프로그래밍/Python

pickle.UnpicklingError: invalid load key (완전 성공 아님)

반응형
import joblib
import os
model = joblib.load(open('C:\\Users\\비밀디렉토리\\Downloads\\super.baseline_model_ml.pkl', 'rb'))
pre=model.predict('X_text')

pkl을 이번에 처음 접해봤는데 이파일을 여는 작업을 해야했다.

그래서 열심히 구글링 하여 작업을 아래와 같이 수행했다.

import pickle

with open('C:\\Users\\내디랙토리데헹\\Downloads\\super.baseline_model_ml.pkl', 'rb') as f:
	data = pickle.load(f);

 

그래서 당연히 간단히 해결될줄 알았는데 아래와 같은 에러가 떴다.

 

Traceback (most recent call last):
  File "d:\pypy\module4.py", line 4, in <module>  
    data = pickle.load(f);
_pickle.UnpicklingError: invalid load key, '\x00'.

 

아놔..

 

 

그래서 해당에러를 검색해보았다.

 

(대충 이것저것 뒤져봤다는 이미지 이다)

피클 버전을 낮추거나 높여서도 깔아봤지만 피클은 아예안먹혔다.

 

그러다가 중국쪽 사이트에서 답을 찾았는데

https://blog.csdn.net/fivemillion/article/details/125933007

 

python 报错:UnpicklingError: invalid load key, ‘\x00‘._小白想听人话的博客-CSDN博客

在读取一个训练好的模型时: model = pickle.load(open('model1.pkl', 'rb')) 报错:pickle.load(open('y1_model.pkl', 'rb')) 网上查了一些方法还以为训练的那个模型源代码有问题,后来发现是读取方式有问题,将pick

blog.csdn.net

 

import joblib
import os
model = joblib.load(open('C:\\Users\\응애\Downloads\\super.baseline_model_ml.pkl', 'rb'))
pre=model.predict('X_text')

했더니 에러...

 

Traceback (most recent call last):
  File "d:\pypy\module4.py", line 4, in <module>
    pre=model.predict('X_text')
  File "C:\Python310\lib\site-packages\sklearn\neural_network\_multilayer_perceptron.py", line 971, in predict
    y_pred = self._predict(X)
  File "C:\Python310\lib\site-packages\sklearn\neural_network\_multilayer_perceptron.py", line 667, in _predict
    X = check_array(X, accept_sparse=['csr', 'csc', 'coo'])
  File "C:\Python310\lib\site-packages\sklearn\utils\validation.py", line 545, in check_array
ion.py", line 545, in check_array
              tol=0.0001, validation_fraction=0.1, verbose=False,
              warm_start=False)
Traceback (most recent call last):
  File "d:\pypy\module2.py", line 12, in <module>
    data = pickle.load(f);
_pickle.UnpicklingError: invalid load key, '\x0d'.

 

뭔가 그럴싸하게 나왔지만 에러가 났다..

 

 

사실 이중간에 파일 라이브러리 버전이 안맞는다하여 버전도 낮은버전으로 낮춰서 까는 작업을 진행했다.

당장 이력에 남아있는게 이거인지라.. 

 pip install -v scikit-learn==0.22.2.post1
 pip3 install MLPClassifier==0.22.1

 

그러다 다시 찾으면 올리겠지만 os로 파일open후에 joblb로 로드후 다시 덤프떠서  확인해보라는 글이 인터넷에 있었다.

 

import joblib
import os
model =joblib.load(open('C:\\Users\\테테테테\\Downloads\\super.baseline_model_ml.pkl','rb'));

print(model);
file_name = 'object_01.pkl'
joblib.dump(model, file_name)


import pickle
with open('object_01.pkl', 'rb') as f:
	data = pickle.load(f);

 

에러는 뜨지만 파일내용을 파악할수 있었다.

 

 

반응형