问题标签 [cudf]

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 投票
1 回答
112 浏览

python - RAPIDS:如何在使用另一个数据帧的 apply_rows 调用的 UDF 中使用一个数据帧?

对于数据框 A 中的每一行,我需要查询 DF B。我需要执行以下操作:按列 b1 (B.b1) 中的值过滤 B 行,这些值在列 A.a1 和 A.a2 定义的范围内并将组合值分配给 A.a3 列。

在 pandas 中会是这样的:

我尝试在 UDF 的函数参数中传递数据框,但出现错误:

下面是一个使用 Pandas 的工作 Python 示例。

0 投票
1 回答
143 浏览

python - AttributeError:“cupy.core.core.ndarray”对象没有属性“iloc”

我正在尝试将数据拆分为训练和验证数据,为此我train_test_splitcuml.preprocessing.model_selection模块中使用。

但出现错误:

虽然我没有使用 iloc。

这是代码:

train_dfIF是一个 cudf DataFrame 并且train_y是 cupy 数组。

0 投票
1 回答
221 浏览

dask - 了解 dask cdf 对象生命周期

我想了解 Dask 对象的高效内存管理过程。我已经设置了一个 Dask GPU 集群,并且能够执行跨集群运行的任务。但是,对于 dask 对象,特别是当我运行计算函数时,在 GPU 上运行的进程通过使用越来越多的内存而迅速增长,很快我就会收到“内存不足错误”。

我想了解如何在使用完 dask 对象后释放内存。在以下示例中,在计算函数之后,我如何释放该对象。我正在运行以下代码几次。内存在运行的进程中不断增长

0 投票
0 回答
231 浏览

python - 使用 cudf 数据框时的 Pandas TypeError,但不是 pandas

我不认为我正在尝试解决这个问题,而是要了解正在发生的事情,因此我可以将它应用到我更大的项目的上下文中。我正在重写一个 Python 包以在 GPU 上运行。

无论如何,我正在使用 cudf 和 cuml 将数据帧传递给一个搜索列并创建所有 unqiue 值的数组的函数。传入的数据是一个包含所有数字字段的 csv,以及一个包含 1 表示正类,否则为 0 的类/y 字段。

数据的加载几乎相同。

编辑: cudf.unique() 返回一个 Series 而不是数组的事实似乎是原因。

还是很奇怪。以下适用于 Pandas 系列对象:

但是与 <cudf.core.series.Series> 相同的循环会得到 TypeError: series objects not iterable 错误。为什么会这样?

熊猫版:

cdf 版本:

接下来,我将 X_train 和 y_train 传递给一个模型,该模型作为一百万个其他事物的一部分,创建了 y_train 的唯一值数组。作为该过程的一部分,它使用 pandas.unique()。使用 pandas 数据框时,没有问题,整个模型运行顺利(不足为奇,它是基于 pandas 构建的)

但是,当我使用 cudf 数据框时,我得到以下信息:

我想我不明白为什么它在访问 cudf 数据框时看到一个不可散列的系列,而不是熊猫——它们都是系列?我假设会发生的情况是,当使用它不具备的方法调用 cudf 数据帧时,会发生以下两种情况之一:

  • 它将数据发送回 CPU 以供 Pandas 处理;或者,
  • 它会因为根本不认识这个方法而崩溃

但似乎正在发生的事情是,它知道 cudf 数据帧是一个数据帧,并尝试用 pandas 处理它,但随后 pandas 看到了不同的东西。

我想了解为什么会这样,因为我相信我会遇到更多这样的问题。

感谢您的任何见解。

0 投票
2 回答
98 浏览

python - 如何在 DASK_CUDF 中创建唯一 ID 列

如何在所有分区的 dsak cudf 数据帧中创建唯一 id 列到目前为止,我正在使用以下技术,但如果我将数据增加到超过 10cr 行,则会出现内存错误。

如果有其他方法,或者代码有任何修改,请提出建议。谢谢你的帮助

0 投票
1 回答
124 浏览

python - TypeError:“BlockManager”对象不可迭代

我正在尝试合并 cudf 数据框和 geopandas 数据框。

df是一个 cudf 数据框,parishes是一个 geopandas 数据框。

在运行上述行时,我收到以下错误:

问题是什么 ?有人可以帮我弄这个吗 ?这是我第一次使用 cudf 数据帧,所以我不确定是什么导致了这个问题。

0 投票
0 回答
118 浏览

python - 如何将 Pandas 与 cuDF 一起使用?

我正在尝试使用 cuDF 复制这个熊猫系列片段。

看起来还没有实现。我们如何实现 cuDF 版本?

0 投票
1 回答
163 浏览

python - Dask 和 cudf 循环出现内存不足错误

我正在使用 Dask 和 Rapidsai 在大型(6.9GB)数据集上运行 xgboost 模型。硬件是 4 个 2080 TI,每个 11 GB 内存。原始数据集有几十个目标列已经过一次热编码,所以我试图运行一个循环,一次保留一个目标列,丢弃其余列,运行模型,然后重复。

这里有一些伪代码来展示这个过程:

好的,所以如果我在任何单独的目标列上运行它,它工作正常 - 推动可用内存,但不会中断。如果我在集群/客户端分配后尝试使用循环来执行此操作:

它在循环的第三次运行时中断,内存不足。相反,如果我在循环中分配集群/客户端:

它工作正常。

所以,我猜我在循环运行中创建的一些对象显然是持久的,对吧?因此,我尝试在每个循环结束时将 d_train 和 d_test 设置为空列表以清除内存,但这不起作用。我是否在循环之前或循环内读取原始数据或任何其他更改也无关紧要。

唯一可行的方法是在每个循环结束时重新初始化集群和客户端。

这是为什么?是否有更有效的方法在 dask 分区上循环处理内存?无论如何,我已经读过 dask 在循环中的效率非常低,所以也许我什至不应该以这种方式做事。

任何对 dask 或 rapids 内存管理的见解将不胜感激。

0 投票
1 回答
39 浏览

rapids - 用火花跑急流时 nvvp 时间线中的间隙

我正在对使用 tpch-dbgen 生成的 CSV 运行一些 sql 查询。为简单起见,我使用一个线程/任务运行它,并查看时间轴中的间隙,如附图所示。是磁盘操作吗?这种开销可以以某种方式放松或优化吗?我怎么能确定那里到底发生了什么?

探查器时间线

0 投票
1 回答
67 浏览

pandas - 使用 cudf 数据框搜索索引不适用于 numpy

我刚刚用 cudf (rapidsai) 加载了 csv 文件以减少所需的时间。当我尝试使用 where 条件搜索索引时出现问题 df['X'] = A

这是我的代码示例:

但是,错误显示如下:

我不明白为什么会这样,因为我以前从来没有遇到过熊猫的任何问题。