python - 保存和加载 ML 模型
问题描述
我有一个机器学习模型,我在拟合后将其保存为泡菜:
saved_model = open (path+"clustering_model.pkl", "wb")
pickle.dump(cluster, saved_model)
saved_model.close()
通过导入 predict 方法,我可以将其加载回来并从不同的 python 文件中对其进行测试:
我创建了一个测试输入:
processed_responses = {"C1": ["low"], "C2": ["high"],
"C3": ["low"], "C4": ["low"], "C5": ["low"], "C6": ["low"]}
test_data_frame = pd.DataFrame(data = processed_responses)
然后我加载回模型并用我的测试数据调用 predict 方法:
saved_model = open(path+"clustering_model.pkl", 'rb')
fitted_model = pickle.load(saved_model)
labels,cost = _predict_cluster(fitted_model, test_data_frame)
一切都在我的机器上运行。
当我尝试从主应用程序加载此模型以便我可以将所有内容推送到开发时,问题就开始了。对于相同的测试数据,我收到错误消息:
not enough values to unpack (expected 2 got 1)
此方法引发错误:
labels,cost = _predict_cluster(fitted_model, test_data_frame)
Insdie the predict 我打印了它收到的输入,它告诉我模型和测试数据都被正确接收:
C1 C2 C3 C4 C5 C6
0 low high low low low low
这是我加载并发送来预测的拟合模型:
KModes(cat_dissim=<function matching_dissim at 0x7f60c9c0cb70>,
init='Random', max_iter=200, n_clusters=8, n_init=15, verbose=0)
到目前为止,我还无法弄清楚为什么会出现此错误。我怎么可能将模型加载回我的机器上并使用测试数据调用预测,但作为开发主应用程序的一部分?
谢谢你。
解决方案
推荐阅读
- ms-access - 基于查询计算的弹出消息
- javascript - 无法在反应导航中使用 setParams 将函数设置为参数
- javascript - 如何使用 php 脚本更新 sql 数据库
- flutter - 带有颤振插件的AndroidX问题在“rmtmckenzie/flutter_qr_mobile_vision”
- corda - 从流连接数据库
- deployment - 从 minikube 中的 docker 映像创建部署时,容器不断崩溃
- vue.js - vuejs中的多个if条件 - 如何让它工作
- javascript - 传单删除旧层
- python - 我在一个列表中有多个数据框。如何打印他们的名字?
- sparql - SPARQL BIND IF bound 未按预期工作