0

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)

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

4

1 回答 1

4

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()
于 2019-07-04T05:01:44.820 回答