在Python中,我已将模型另存为joblib文件,并使用读取字节形式的joblib
bytes_data = open('model.joblib','rb').read()
然后我使用以下代码转换为base64并存储在数据库中
import base64
base64_data = base64.b64encode(bytes_data)
稍后,我从数据库中加载base64_data并解码回二进制文件
loaded_binary = base64.b64decode(base64_data)
现在我正在写二进制文件
bytes_load = open(loaded_binary,'wb').write()
我在这里遇到错误
Traceback (most recent call last):
File "<ipython-input-28-1d2986913b15>", line 1, in <module>
bytes_load = open(loaded_binary,'wb').write()
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 0: invalid start byte
读写二进制文件不允许使用编码参数,我需要恢复相同的模型。
答案 0 :(得分:1)
您将已解码的二进制文件内容作为文件名传递给open函数。我猜不是
bytes_load = open(loaded_binary,'wb').write()
您需要:
bytes_load = open('somefilename', 'wb').write(loaded_binary)