Читать модель как байты без сохранения в локации в python? - PullRequest
0 голосов
/ 04 июля 2019

Python, я сохранил свою модель в виде файла joblib в определенном месте, открываю файл в считанных байтах 'rb', можно ли преобразовать его в байты вместо сохранения в файл,

import joblib
joblib.dump(model, 'model.joblib')
#Read as bytes
model_bytes = open('C:/Models/model.joblib','rb').read()
model_bytes
#This outputs like 
b'\x80\x03csklearn.ensemble.forest\nRandomForestClassifier\nq\x00)\x81q\x01}q\x...…..

Здесь я не хочу сохранять в определенном месте, поэтому я попытался с помощью tempfile, но это не сработало. Я знал, есть ли другие варианты

import tempfile
bytes_model = tempfile.TemporaryFile()
bytes_model.read(model)

#Also bytes function doesn't work
bytes_model = bytes(model)

Мне не нужно создавать файл, чтобы мне не нужно было к нему обращаться, Можно ли считать переменную модели в байтах?

1 Ответ

1 голос
/ 04 июля 2019

Вы можете использовать BytesIO для этого, если joblib.dump() не жалуется.

Что-то вроде этого может работать для вас:

from io import BytesIO
import joblib

bytes_container = BytesIO()
joblib.dump(model, bytes_container)
bytes_container.seek(0)  # update to enable reading

bytes_model = bytes_container.read()
...