class_docstr: Collective gather communication.
class_docstr_tok: ["Collective","gather","communication","."]
code: def backward(self, inputs, grad_outputs):
      # convert to float32 for communication
      input_dtype = inputs[0].dtype
      if self.comm.rank == self.root and numpy.float16 == input_dtype:
          grad_outputs = tuple(
              [item.astype(numpy.float32) for item in grad_outputs]
          )
      ret = (self.comm.scatter(grad_outputs, self.root),)
  
      # convert back
      if numpy.float16 == input_dtype:
          ret = tuple([item.astype(input_dtype) for item in ret])
  
      return ret
  
imports: import chainer
  from chainer import backend
  import numpy
label_desc: Use image node_id 3 for calling the Gather obj's underlying member method code with example usage: obj.backward(inputs, grad_outputs) and returns: ret