def _impl_test_add_diag(self, dtype):
     x = np.asarray(np.random.rand(4, 4), dtype)
     d = np.asarray(np.random.rand(1, 4), dtype).reshape(-1)
     x_gpu = gpuarray.to_gpu(x)
     d_gpu = gpuarray.to_gpu(d)
     res_cpu = x + np.diag(d)
     res_gpu = linalg.add_diag(d_gpu, x_gpu, overwrite=False)
     assert np.allclose(res_cpu, res_gpu.get(), atol=1e-5)
     assert res_gpu is not x_gpu
     res_gpu = linalg.add_diag(d_gpu, x_gpu, overwrite=True)
     assert np.allclose(res_cpu, res_gpu.get(), atol=1e-5)
     assert res_gpu is x_gpu
Beispiel #2
0
 def impl_test_add_diag(self, dtype):
     x = np.asarray(np.random.rand(4, 4), dtype)
     d = np.asarray(np.random.rand(1, 4), dtype).reshape(-1)
     x_gpu = gpuarray.to_gpu(x)
     d_gpu = gpuarray.to_gpu(d)
     res_cpu = x + np.diag(d)
     res_gpu = linalg.add_diag(d_gpu, x_gpu, overwrite=False)
     assert np.allclose(res_cpu, res_gpu.get(), atol=1e-5)
     assert res_gpu is not x_gpu
     res_gpu = linalg.add_diag(d_gpu, x_gpu, overwrite=True)
     assert np.allclose(res_cpu, res_gpu.get(), atol=1e-5)
     assert res_gpu is x_gpu
def calculate_H_gpu(X, W, P):
    WPW = la.add_diag(P, la.dot(W, W, "t", "n"))
    tmp = la.dot(W, la.inv(WPW, overwrite=True))
    H = la.dot(X, tmp, "n", "t")
    H = gpu.maximum(H, 0)
    H = to_unit_variance(H)
    return H, tmp
def calculate_H_gpu(X, W, P):
    WPW = la.add_diag(P, la.dot(W, W, "t", "n"))
    tmp = la.dot(W, la.inv(WPW, overwrite=True))
    H = la.dot(X, tmp, "n", "t")
    H = gpu.maximum(H, 0)
    H = to_unit_variance(H)
    return H, tmp