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

han*_*zgs 0 python io pickle bytesio joblib

Python,我已将模型保存为 joblib 文件在某个位置,我在“rb”读取字节中打开文件,是否可以直接转换为字节而不是保存在文件中,

\n\n
import joblib\njoblib.dump(model, 'model.joblib')\n#Read as bytes\nmodel_bytes = open('C:/Models/model.joblib','rb').read()\nmodel_bytes\n#This outputs like \nb'\\x80\\x03csklearn.ensemble.forest\\nRandomForestClassifier\\nq\\x00)\\x81q\\x01}q\\x...\xe2\x80\xa6..\n
Run Code Online (Sandbox Code Playgroud)\n\n

在这里我不想保存在某个位置,所以我尝试使用临时文件,但这不起作用我知道,还有其他选择吗

\n\n
import tempfile\nbytes_model = tempfile.TemporaryFile()\nbytes_model.read(model)\n\n#Also bytes function doesn't work\nbytes_model = bytes(model)\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n

mon*_*kut 5

如果不抱怨的话,你应该能够使用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()
Run Code Online (Sandbox Code Playgroud)