提问人:Elif Kartal 提问时间:10/22/2023 最后编辑:Elif Kartal 更新时间:10/23/2023 访问量:31
在 Python 中使用用户定义的距离函数在 GPU 上运行 k-NN 函数有没有合适的方法?
Is there a proper way to run k-NN function on GPU with a user defined distance function in Python?
问:
我想在 Python 中使用新的用户定义的距离函数运行 k-最近邻 (k-NN)。你能建议一个正确的方法吗?
我找不到如何在 Python 中使用新的用户定义距离函数运行 k-最近邻 (k-NN) 的解决方案。
我还安装了 Ubuntu (wsl2),因为我的 Windows 没有看到我的 GPU 设备。
我什至尝试用 cupy 计算距离矩阵,然后想将其转移到 scikitlearn knnClassifier。但是,即使在使用嵌套循环的 GPU 上,计算图像距离矩阵也需要很长时间。
...
import cupy
from sklearn.neighbors import NearestNeighbors as skNearestNeighbors
...
我们的x_train和x_test是cupy.ndarray。x_train.shape 是 16384。
我们正在尝试在 GPU 上计算 dist 矩阵,但是使用下面的代码大约需要 15 分钟。对于每次迭代。
num_samples = len(x_train)
distance_matrix = cupy.empty((len(x_train), len(x_test)), dtype=cupy.float32)
for i in range(len(x_train)):
for j in range(len(x_test)):
distance_matrix[i, j] = user_defined_distFunction(x_train[i, ], x_test[j, ])
在计算了这个distance_matrix之后,我们计划将其作为 scikitlearn 的 knnClassifier 的输入。
那么,有没有合适的方法(任何库等)在 GPU 上使用 Python 中用户定义的距离函数运行 k-NN 函数?
答: 暂无答案
评论