问题标签 [dask-ml]
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.
python-3.x - joblib 与 Dask 后端的连接:tornado.iostream.StreamClosedError: Stream is closed
我在我的 dask worker 上运行一个简单的程序。下面是程序。
30006 是我运行调度程序的端口。
我收到以下错误。
以下是我的包裹信息:
我怀疑问题出在 joblib 上,因为如果我在没有“with joblib.parallel_backend('dask'):”行的情况下运行它,那么 fit 命令可以正常工作。另外,我在 dask worker 上尝试了一个简单的 numpy 数组计算,它可以工作。所以 dask 工作人员和我客户的连接效果很好。我尝试过不同版本的joblib。(0.16.0. 0.17.0, 1.0.0, 1.0.1) 并且同样的错误仍然存在。
python - KilledWorker 异常
我正在使用线圈来启动集群并使用 dask 对从 S3 存储桶读取的 csv 进行一些操作。然而,在某些时候,我的工人被杀了。当我检查日志时,以下任务正在杀死它们。
所以,然后,我将 csv 从 s3 存储桶移到我的本地仓库并运行它,但读取的 csv 仍然会失败。
另一点是读取的 csv 对于先验数据操作正常工作,但对于一些虚拟编码器、.compute() 和日期操作,工作人员正在被杀死。
知道会发生什么吗?
python - 如何在 dask 中设置预处理管道?
我整天都在 dask 的网站上,但它仍然不适合我。
我有数据框,不同的列需要不同的预处理:
这是我正在做的一个例子。我正在尝试采用不同的列并以不同的方式对待它们。但是在执行上述操作时出现此错误:
我尝试做的另一件事是 ColumnTransformer:
我收到此错误:
我很困惑这样做的正确方法是什么?
python - Dask ML - GaussianNB 返回长度不匹配错误
我正在尝试使用带有 Dask 的 GaussianNb 分类器来预测我的测试集。这是我的设置的样子:
我所有的 X 和 y 变量都是 Dask DataFrames,但是,我收到以下错误:
我仔细地将 fit_transform 用于我的训练集并适合我的测试集,但我没有运气。
python-3.x - 具有张量流的 Dask 因“CRITICAL - Failed to Serialize”错误而失败
我已经安装了 dask[complete]、tensorflow、scikeras、deplayed、dask-ml。我在本地运行相同的示例链接。工作日志中也没有堆栈跟踪。请帮助我进一步了解更多信息。
代码失败并出现以下错误:
python - 减少 dask XGBoost 内存消耗
我正在编写一个简单的脚本代码来在我的数据集上训练一个 XGBoost 预测器。这是我正在使用的代码:
它运行良好,但我不断收到与 Dask ( distributed.utils_perf - WARNING - full garbage collections took 36% CPU time recently (threshold: 10%)
)相关的常见垃圾收集器警告
我分析了可用的仪表板,我注意到我的代码一直在增加内存使用量,直到达到 80% 的限制(我更改了 .config 文件夹中的标准设置),然后由于垃圾收集器而开始变慢。
这里有一个例子:
它基本上一直这样下去,直到它饱和所有可用内存。我使用的数据集非常大,这就是我使用 Dask 的原因。然而,它似乎基本上是将整个数据集加载到内存中(我不知道这个假设是否正确,但由于读取拼花任务似乎如此)。
代码非常简单,似乎没有什么大问题。
在以下问题(Dask Github Issue )中,图书馆的作者说:
还值得注意的是,此错误消息
Distributed.utils_perf - 警告 - 最近完全垃圾收集占用了 47% 的 CPU 时间(阈值:10%)通常(但不完全)是您正在运行的代码的错误,与 Dask 无关。Dask 正好可以让您知道是否有类似的事情发生。
但是,正如我已经说过的,代码非常简单。
- 如何删除此警告?这真的减慢了我的代码的性能
- 我正在使用 Dask 来“按块”工作,因为我的数据集太大而无法放入内存。然而,它似乎将所有内容都加载到内存中,这使得 Dask 的使用变得毫无用处。我怎样才能“强制”它按预期工作(块)?
dask - 为什么 dask_ml.preprocessing.OrdinalEncoder.transform 会产生未按顺序编码的结果?
我对dask_ml.preprocessing.OrdinalEncoder.transform的结果感到困惑:
原始 OrdinalEncoder.transform 返回一个 numpy.ndarray (带有数值):
dask-ml 对应项不仅通过返回 pandas.DataFrame 来破坏接口,它还简单地返回初始输入 DataFrame:
我期望的是一个(Pandas 或 Dask)DataFrame 或一个(Numpy 或 Dask)数组,其中包含类似于 sklearn OrdinalEncoder 产生的数值。
python - Dask 和 cudf 循环出现内存不足错误
我正在使用 Dask 和 Rapidsai 在大型(6.9GB)数据集上运行 xgboost 模型。硬件是 4 个 2080 TI,每个 11 GB 内存。原始数据集有几十个目标列已经过一次热编码,所以我试图运行一个循环,一次保留一个目标列,丢弃其余列,运行模型,然后重复。
这里有一些伪代码来展示这个过程:
好的,所以如果我在任何单独的目标列上运行它,它工作正常 - 推动可用内存,但不会中断。如果我在集群/客户端分配后尝试使用循环来执行此操作:
它在循环的第三次运行时中断,内存不足。相反,如果我在循环中分配集群/客户端:
它工作正常。
所以,我猜我在循环运行中创建的一些对象显然是持久的,对吧?因此,我尝试在每个循环结束时将 d_train 和 d_test 设置为空列表以清除内存,但这不起作用。我是否在循环之前或循环内读取原始数据或任何其他更改也无关紧要。
唯一可行的方法是在每个循环结束时重新初始化集群和客户端。
这是为什么?是否有更有效的方法在 dask 分区上循环处理内存?无论如何,我已经读过 dask 在循环中的效率非常低,所以也许我什至不应该以这种方式做事。
任何对 dask 或 rapids 内存管理的见解将不胜感激。
python - KMeans 预测的标签上的 dask compute() 问题
我正在尝试使用 sklearn MiniBatchKMeans 来聚类一个相当大的数据集(150k 样本和 150k 特征)。我认为我可以使用来自 dask_ml 的增量来使事情变得更快,以将我的数据分成块。这是我在虚拟数据集上的代码片段:
该进程在 compute() 步骤中被终止。我不认为在 150k 点上运行 compute() 会如此密集。它因这个奇怪的错误而失败:
我不明白 MiniBatchKMeans 功能的大小与标签上的 compute() 有什么关系
编辑 在第一个答案之后,我想澄清一下我在标签(而不是数据集!)上使用了 compute(),因为我需要它们来进行一些绘图操作。这些值需要在 RAM 上才能被 matplotlib 函数使用。
(150k, ) 的数组应该能够舒适地安装在 RAM 上,我不确定它为什么会失败!