将模型读取为字节,而无需保存python的位置



python,我将模型保存为joblib文件,在一个位置,i在'rb'read字节中打开文件,可以直接转换为字节而不是保存在一个文件,

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'x80x03csklearn.ensemble.forestnRandomForestClassifiernqx00)x81qx01}qx...…..

在这里我不想保存在一个位置,所以我尝试使用tempfile,但这不会可行,我知道还有其他选择

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

最新更新