Exemple #1
0
def _move_kernel_to_cpu(kernel):
    """Moves data in a kernel from an accelerator to the CPU."""
    if isinstance(kernel, Kernel):
        return Kernel(device_get(kernel.var1), device_get(kernel.nngp),
                      device_get(kernel.var2), device_get(kernel.ntk),
                      kernel.is_gaussian, kernel.is_height_width)
    else:
        return device_get(kernel)
def _move_kernel_to_cpu(k):
    """Moves data in a kernel from an accelerator to the CPU."""
    if hasattr(k, '_asdict'):
        return k._replace(**dict([(k, device_get(v))
                                  for k, v in k._asdict().items()]))
    elif isinstance(k, np.ndarray):
        return device_get(k)
    else:
        raise TypeError(
            'Expected kernel to be either a namedtuple or a `np.ndarray`, got %s.'
            % type(k))
Exemple #3
0
    def test_device_put_and_get(self):
        x = onp.arange(12.).reshape((3, 4)).astype("float32")
        dx = api.device_put(x)
        self.assertIsInstance(dx, DeviceArray)
        x2 = api.device_get(dx)
        self.assertIsInstance(x2, onp.ndarray)
        assert onp.all(x == x2)

        y = [x, (2 * x, 3 * x)]
        dy = api.device_put(y)
        y2 = api.device_get(dy)
        self.assertIsInstance(y2, list)
        self.assertIsInstance(y2[0], onp.ndarray)
        assert onp.all(y2[0] == x)
        self.assertIsInstance(y2[1], tuple)
        self.assertIsInstance(y2[1][0], onp.ndarray)
        assert onp.all(y2[1][0] == 2 * x)
        self.assertIsInstance(y2[1][1], onp.ndarray)
        assert onp.all(y2[1][1] == 3 * x)
 def x_cpu():
     return device_get(
         random.normal(random.PRNGKey(1), (2, 3), dtype))
Exemple #5
0
 def kernel_fn(x1, x2=None, *args, **kwargs):
   return device_get(_kernel_fn(x1, x2, *args, **kwargs))
Exemple #6
0
 def transform(c, rng=None):
     return DataChunk(device_get(c.X, np.float64),
                      device_get(c.Y, np.float64), c.image_size,
                      c.image_channels, c.label_dim, c.label_format)