问题标签 [klepto]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
457 浏览

python - Pickle 文件内存错误 - kelpto questoin

尝试为深度学习问题腌制大型 numpy 数组时出现内存错误shape: (7451, 1500, 1500, 1))。也就是说,我看到了一些帖子klepto并阅读了文档,但我不确定如何实际使用klepto来保存为泡菜文件。

谁能帮我把它分解到五年级?

这是抛出内存错误:

0 投票
1 回答
179 浏览

python - 使用 klepto.archives.file_archive 时如何更改文件中字典的名称?

运行以下代码后,发现文件中的字典名称memo.pymemo. 我想更改该文件中字典的名称。有谁知道该怎么做?

0 投票
0 回答
63 浏览

keyerror - 从本地机器使用时在 Klepto 中获取 KeyError

我想将我的 ML 模型保存到我的本地机器上。我已经按照https://stackoverflow.com/a/29291153/11543494这个答案将 ML 模型存储在本地机器中,但是当我从本地机器加载持久的 ML 模型时,我得到了关键错误。

我已经创建了可以预测 URL 类别的 ML 模型。现在我想将 ML 模型与我的 Web 应用程序集成,这就是我使用 Flask 创建 API 的原因。

我已经在 jupyter notebook 中测试了我的 ML 模型,现在我的代码与 ML 模型相关,我只想转储我的 ML 模型并在我的 API 中使用它。在 jupyter notebook 中,我得到了正确的输出,但是当我在我的 API 代码中加载持久文件时,我得到了 KeyError。我尝试使用pickle,joblib,但出现MemoryError,我也尝试解决该问题,但无法解决该问题,因此我正在尝试Klepto。

盗贼密码

API 代码

当我运行 API 时,我得到 KeyError:'result'。

如果我在 jupyter notebook 中运行以下代码,我会得到正确的输出

输出>

输出> 数组(['计算机'],dtype =

这是堆栈跟踪的屏幕截图 Stack trace

0 投票
2 回答
698 浏览

machine-learning - 如何保存大型 sklearn RandomForestRegressor 模型进行推理

我在 19GB 的训练数据上训练了一个 Sklearn RandomForestRegressor 模型。我想将它保存到磁盘以便以后使用它进行推理。正如在另一个stackoverflow问题中所推荐的那样,我尝试了以下方法:

  • 泡菜

模型已成功保存。它在磁盘上的大小是 1.9 GB。

加载模型导致 MemorError(尽管有 16 GB RAM)

  • cPickle - 与 Pickle 相同的结果
  • 作业库

joblib.dump(est, 'random_forest.joblib' compress=3)

它还在加载文件时以 MemoryError 结束。

  • 盗贼

创建了 Arhcive,但是当我想使用以下代码加载它时,我得到 KeyError: 'sklearn_random_forest'

我尝试使用相同的代码保存字典对象,它有效,所以代码是正确的。显然 Klepto 不能持久化 sklearn 模型。我玩过缓存和序列化的参数,但没有帮助。

任何有关如何处理此问题的提示将不胜感激。是否可以将模型保存为 JSON、XML、HDFS 或其他格式?

0 投票
1 回答
27 浏览

python - 如何在 Python 3 中使用 klepto sqltable_archive 设置表名?

基于klepto 文档

使用:

成功创建默认表名的数据库memo

但是,当 table 也包括在内时:

出现以下错误:

指向第 159klepto.archives

任何帮助深表感谢!

0 投票
0 回答
61 浏览

python - Klepto(Python 模块)file_archive 是否应该比 Pickle 慢 10 倍?

我想分页@mike-mckerns,但我会感谢任何有 Python 的 Klepto 模块(https://pypi.org/project/klepto/)经验的人的回答。

我的情况是我正在运行一个模拟,该模拟涉及生成和记录数以万计的对象,每个对象都是字符串和数值的组合。(我只是想说这些对象不能简单地抽象为例如一个 numpy 数组。)

由于生成的对象数量庞大,我遇到了内存问题。到目前为止,我的解决方案是使用 pickle 将每个实例单独转储到其自己的 pickle 文件中。

问题是这使我的模拟数据分布在 30k 个单独的文件中(每个文件大小约为 5kb)。当试图移动或共享过去模拟的数据时,这很麻烦,总大小是可管理的,但单个文件的数量一直是个问题。

这就是为什么我最终选择了 Klepto 作为可能的解决方案。我认为 file_archive 函数可以让我使用单个文件作为我的“外部”字典,而不是需要为每个实例提供自己的 pickle 文件。

我不太了解该模块的大部分内容,因此我尝试尽可能简单地实现它。我的代码基本上工作如下:

当不再需要某个对象时,我只需使用del ExternalObjectDictionary[x].

就其本身而言,实现似乎运行良好。除了,它最终会比我简单地使用单个泡菜文件时慢 x10 或 x20pickle.dump()pickle.load()

我是在使用 Klepto 错误,还是试图从单个文件中转储/加载本质上会比使用单个文件慢得多?我查看了许多选项,Klepto 似乎提供了最直接的从文件读取字典功能来满足我的需要,但也许我误解了如何使用它?

抱歉,如果我的代码示例被简化了,我希望我已经将问题解释得足够清楚,以便有人回应并澄清事情!如果需要,我可以继续使用我当前的 10k 个单独的泡菜文件的解决方案,但如果有可能的替代方法,那就太好了!