python 报错:UnpicklingError: invalid load key, ‘\x00‘.

本文介绍了在Python中保存和加载机器学习模型时,pickle和joblib两种方法的区别及使用场景。当尝试加载用joblib保存的模型时,如果错误地使用pickle.load()会导致UnpicklingError。正确的方式是使用joblib.load()。同时,提供了两种方法的示例代码,强调了在调用时必须匹配保存模型时使用的库。
摘要由CSDN通过智能技术生成

在读取一个训练好的模型时:

model = pickle.load(open('model1.pkl', 'rb'))

报错:pickle.load(open('y1_model.pkl', 'rb'))

网上查了一些方法还以为训练的那个模型源代码有问题,后来发现是读取方式有问题,将pickle.load()该为joblib.load()就可以了

后来和对方确认,对方确实是使用joblib保存模型为pkl格式的。

在此,多说两句,对训练好的模型进行保存,方便后续直接调取预测使用,有两种保存方式:

'''方法一:joblib'''

import joblib

joblib.dump(model, "model1.pkl")  #保存

model = joblib.load(open('model1.pkl', 'rb'))  #加载

pre = model.predict(X_test)


'''方法一:pickle'''


import pickle

#保存
pickle.dump(model, open('model1.pkl', 'wb'))

# 加载 
model = pickle.load(open('model1.pkl', 'rb'))

Y_pred = model.predict(X_test)




两种不同的保存方式都可将模型保存成pkl文件,但是在调用的时候要根据保存的不同方法选择对应的调用方法,不然就会报错:UnpicklingError: invalid load key, '\x00'.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值