XuhanLiu / DrugEx

Deep learning toolkit for Drug Design with Pareto-based Multi-Objective optimization in Polypharmacology
MIT License
189 stars 66 forks source link

UnicodeDecodeError: 'ascii' codec can't decode byte 0x80 in position 63: ordinal not in range(128) #19

Open Meizijiu329 opened 1 year ago

Meizijiu329 commented 1 year ago

in drugex2,I've met this issue: Traceback (most recent call last): File "F:\drugex-v2.0\drugex-v2.0\trainer.py", line 27, in A1 = utils.Predictor('output/single/DNN_%s_CHEMBL226_4.pkg' % z, type=z) File "F:\drugex-v2.0\drugex-v2.0\utils\objective.py", line 27, in init self.model = joblib.load(path) File "F:\Anaconda3\envs\david4\lib\site-packages\joblib\numpy_pickle.py", line 587, in load obj = _unpickle(fobj, filename, mmap_mode) File "F:\Anaconda3\envs\david4\lib\site-packages\joblib\numpy_pickle.py", line 506, in _unpickle obj = unpickler.load() File "F:\Anaconda3\envs\david4\lib\pickle.py", line 1088, in load dispatchkey[0] File "F:\Anaconda3\envs\david4\lib\pickle.py", line 1123, in load_persid "persistent IDs in protocol 0 must be ASCII strings") _pickle.UnpicklingError: persistent IDs in protocol 0 must be ASCII strings

XuhanLiu commented 1 year ago

Firstly, you have to check how you dumped your machine learning pkl model ever before with pickle?

This is what I did in the environ.py.

joblib.dump(model, out, compress=3)

param model: machine learning model with scikit-learn package. param out: the file path with string format

Maybe you also try the following code to replace line 27 in objective.py, if you dump you model with pickle.

import pickle file = open(path, 'rb') self.model = pickle.load(file)