我有一些旧的sklearn模型,我无法再培训.它们很久以前就被不清楚的版本腌制过.我可以用Python 3.6和Numpy 1.14打开它们.但当我try 使用Numpy 1.18迁移到Python3.8时,我在加载它们时遇到了一个错误.

我try 用Python3.6中的协议4转储它们,但没有任何帮助.

保存:

with open('model.pkl', 'wb') as fid:
    pickle.dump(model, fid, protocol=4)

加载:

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

在这种情况下我能做些什么吗?

推荐答案

什么对我有用(非常具体,但可能会帮助某人):

旧的依赖关系:

import joblib
model = pickle.load(open('model.pkl', "rb"), encoding="latin1")
joblib.dump(model.tree_.get_arrays()[0], "training_data.pkl")

更新的依赖项:

import joblib
from sklearn.neighbors import KernelDensity

data = joblib.load("training_data.pkl")
kde = KernelDensity(
      algorithm="auto",
      atol=0,
      bandwidth=0.5,
      breadth_first=True,
      kernel="gaussian",
      leaf_size=40,
      metric="euclidean",
      metric_params=None,
      rtol=0
).fit(data)

with open("new_model.pkl", "wb") as f:
    pickle.dump(kde, f)

Python相关问答推荐

Pythind 11无法弄清楚如何访问tuple元素

标题:如何在Python中使用嵌套饼图可视化分层数据?

通过Selenium从页面获取所有H2元素

什么相当于pytorch中的numpy累积ufunc

优化pytorch函数以消除for循环

如何在虚拟Python环境中运行Python程序?

当从Docker的--env-file参数读取Python中的环境变量时,每个\n都会添加一个\'.如何没有额外的?

如何在python polars中停止otherate(),当使用when()表达式时?

如何获取numpy数组的特定索引值?

如何使用Python以编程方式判断和检索Angular网站的动态内容?

ThreadPoolExecutor和单个线程的超时

将输入聚合到统一词典中

需要帮助重新调整python fill_between与数据点

为什么if2/if3会提供两种不同的输出?

手动设置seborn/matplotlib散点图连续变量图例中显示的值

Polars将相同的自定义函数应用于组中的多个列,

寻找Regex模式返回与我当前函数类似的结果

Polars map_使用多处理对UDF进行批处理

如何在Airflow执行日期中保留日期并将时间转换为00:00

try 在单个WITH_COLUMNS_SEQ操作中链接表达式时,使用Polars数据帧时出现ComputeError