skcuda.linalg.PCA 的 fit_transform 抛出错误

问题描述

我正在尝试在 GPU 上运行 PCA(主成分分析)。我为此目的使用 skcuda.linalg.PCA,但它不起作用。来自他们的教程 (https://scikit-cuda.readthedocs.io/en/latest/generated/skcuda.linalg.PCA.html):

import pycuda.autoinit
import pycuda.gpuarray as gpuarray
import numpy as np
import skcuda.linalg as linalg
from skcuda.linalg import PCA as cuPCA
pca = cuPCA(n_components=4) # map the data to 4 dimensions
X = np.random.rand(1000,100) # 1000 samples of 100-dimensional data vectors
X_gpu = gpuarray.GPUArray((1000,100),np.float64,order="F") # note that order="F" or a transpose is necessary. fit_transform requires row-major matrices,and column-major is the default
X_gpu.set(X) # copy data to gpu
T_gpu = pca.fit_transform(X_gpu) # calculate the principal components

当我运行它时,我收到以下错误

cublasInternalError                       Traceback (most recent call last)
<ipython-input-31-02aaf0fa19e4> in <module>
      8 X_gpu = gpuarray.GPUArray((1000,and column-major is the default
      9 X_gpu.set(X) # copy data to gpu
---> 10 T_gpu = pca.fit_transform(X_gpu)

/opt/conda/lib/python3.7/site-packages/skcuda/linalg.py in fit_transform(self,X_gpu)
    204                     cuGemv (self.h,'n',p,k,-1.0,P_gpu.gpudata,U_gpu.gpudata,1,1.0,P_gpu[:,k].gpudata,1)
    205 
--> 206                 l2 = cuNrm2(self.h,1)
    207                 cuScal(self.h,1.0/l2,1)
    208                 cuGemv(self.h,n,R_gpu.gpudata,0.0,T_gpu[:,1)

/opt/conda/lib/python3.7/site-packages/skcuda/cublas.py in cublasDnrm2(handle,x,incx)
   1295                                        n,int(x),incx,1296                                        ctypes.byref(result))
-> 1297     cublasCheckStatus(status)
   1298     return np.float64(result.value)
   1299 

/opt/conda/lib/python3.7/site-packages/skcuda/cublas.py in cublasCheckStatus(status)
    177             raise cublasError
    178         else:
--> 179             raise e
    180 
    181 # Helper functions:

cublasInternalError

最初,我使用自己的数据运行,但出现此错误。然后我决定运行这个例子,我得到了完全相同的错误。有谁知道这里有什么问题吗?我正在使用带有 Tesla T4 GPU 的 kaggle 笔记本。谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)