def test_gpu(self): with xdl.device("GPU"): grps = np.array([],dtype=np.int32) ksum_grad = xdl.ksum_grad(embeds, idx, values, segs, grps, grads) ksum_grad = xdl.execute(ksum_grad) res = np.array([[0.4],[0.3],[0.6],[0.2],[0.3],[0.3]],dtype=np.float) self.assertTrue(np.allclose(ksum_grad, res))
def test_merged_gpu(self): with xdl.device("GPU"): ksum_grad = xdl.ksum_grad(embeds_shape, idx, values, segs, grps, sidx_nogrp, sseg, merged_grads) ksum_grad = xdl.execute(ksum_grad) res = np.array([[7], [5], [12], [3], [5], [6]], dtype=np.float) self.assertTrue(np.allclose(ksum_grad, res))
def test_merged_cpu_with_values(self): ksum_grad = xdl.ksum_grad(embeds_shape, idx, values, segs, grps, sidx, sseg, merged_grads) ksum_grad = xdl.execute(ksum_grad) res = np.array([[7], [5], [12], [3], [5], [6]], dtype=np.float) self.assertTrue(np.allclose(ksum_grad, res)) ksum_grad = xdl.ksum_grad(embeds_shape, idx, values, segs, grps, sidx, sseg, merged_grads, average=True) ksum_grad = xdl.execute(ksum_grad) res = np.array([[2.5], [2.5], [6], [3], [5], [2]], dtype=np.float) self.assertTrue(np.allclose(ksum_grad, res))
def test_cpu_with_values(self): grps = np.array([], dtype=np.int32) ksum_grad = xdl.ksum_grad(embeds_shape, idx, values, segs, grps, sidx_nogrp, sseg, grads) ksum_grad = xdl.execute(ksum_grad) res = np.array([[4], [3], [6], [2], [3], [3]], dtype=np.float) self.assertTrue(np.allclose(ksum_grad, res)) ksum_grad = xdl.ksum_grad(embeds_shape, idx, values, segs, grps, sidx_nogrp, sseg, grads, average=True) ksum_grad = xdl.execute(ksum_grad) res = np.array( [[1.0833333], [1], [1.75], [0.66666666], [0.75], [0.75]], dtype=np.float) self.assertTrue(np.allclose(ksum_grad, res))
def KSumGrad(op, grad): with xdl.device('CPU'): shape = xdl.shape_op(op.inputs[0]) return [ xdl.ksum_grad(shape, op.inputs[1], op.inputs[2], op.inputs[3], op.inputs[4], op.inputs[5], op.inputs[6], grad[0], average=op.attrs['average']) ]
def test_merged_gpu(self): with xdl.device("GPU"): ksum_grad = xdl.ksum_grad(embeds, idx, values, segs, grps, merged_grads) ksum_grad = xdl.execute(ksum_grad) res = np.array([[0.7],[0.5],[1.2],[0.3],[0.5],[0.6]],dtype=np.float) self.assertTrue(np.allclose(ksum_grad, res))