将模型读取为字节而不保存 python 中的位置?

Read model as bytes without saving in location in 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)

我不需要创建文件,所以我不必访问它, 是否可以将模型变量读取为字节?

如果 joblib.dump() 没有抱怨,您应该可以使用 BytesIO

类似这样的东西可能对你有用:

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()