Читать модель как байты без сохранения в Python?

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...…..

Здесь я не хочу сохранять в каком-либо месте, поэтому я попытался использовать временный файл, но это не сработает, я знал, есть ли другие варианты

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

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

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


person hanzgs    schedule 04.07.2019    source источник


Ответы (1)


Вы можете использовать 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()
person monkut    schedule 04.07.2019
comment
Работает действительно очаровательно, потрясающе, спасибо - person hanzgs; 04.07.2019