1
我正在尝试使用numpy和cudamat进行相同的矩阵乘法。在与numpy和cudamat的矩阵乘法中有非常不同的结果
结果完全不同。
我在做什么错?
我使用:
- 的Ubuntu 14.04
- CUDA 7.0-28
- NVIDIA 346.46
- numpy的1.9.2
- 的Python 2.7.10
- 蟒蛇2.2.0 (64位)
- cudamat(最新发布于2015年6月26日)
- Nvidia的750Ti
而这是代码:
import numpy as np
import cudamat as cm
cm.init()
...
def distance(self, X):
gpu_W = cm.CUDAMatrix(self.W)
gpu_X = cm.CUDAMatrix(X)
gpu_X2 = cm.pow(gpu_X, 2).sum(axis=1)
gpu_W2 = cm.pow(gpu_W, 2).sum(axis=1)
prodWX = cm.dot(gpu_W, gpu_X.T)
prodWX = prodWX.mult((-2))
W=self.W
prodWXgpu=prodWX.asarray()
prodWXcpu=-2*np.dot(W, X.T)
cm.shutdown()
的结果是:
两者都是二维阵列。它们的形状是:
W(14,2) X(10000,2)
这意味着2个乘法以及每个细胞的加成。 所以它不应该是由于累积性错误
在此先感谢