def _reshape_by_device_single(x, num_devices):
  """Reshape x into a shape [num_devices, ...]."""
  x_shape = list(x.shape)
  batch_size = x_shape[0]
  batch_size_per_device = batch_size // num_devices
  # We require that num_devices divides batch_size evenly.
  if batch_size_per_device * num_devices != batch_size:
    logging.fatal(
        "We require that num_devices[%d] divides batch_size[%d] evenly.",
        num_devices, batch_size)
  # New shape.
  new_shape_prefix = [num_devices, batch_size_per_device]
  return np.reshape(x, new_shape_prefix + x_shape[1:])
def _reshape_by_device_single ( x , num_devices ) : x_shape = list ( x . shape ) batch_size = x_shape [ 0 ] batch_size_per_device = batch_size // num_devices if batch_size_per_device * num_devices != batch_size : logging . fatal ( "We require that num_devices[%d] divides batch_size[%d] evenly." , num_devices , batch_size ) new_shape_prefix = [ num_devices , batch_size_per_device ] return np . reshape ( x , new_shape_prefix + x_shape [ 1 : ] )
Reshape x into a shape [num_devices, ...].