class_docstr: Concatenate multiple tensors along third axis (depth wise).
code: def backward(self, indexes, grad_outputs):
      (gy,) = grad_outputs
      ndim = len(self.inputs[0].shape)
      if len(self.inputs) == 1:
          if ndim <= 2:
              return (gy.reshape(self.inputs[0].shape),)
          return (gy,)
  
      if ndim <= 2:
          gxs = chainer.functions.split_axis(
              gy, len(self.inputs), axis=2
          )
          return [gx.reshape(self.inputs[0].shape) for gx in gxs]
  
      sizes = numpy.array(
          [x.shape[2] for x in self.inputs[:-1]]
      ).cumsum()
      return chainer.functions.split_axis(gy, sizes, axis=2)
  
file_path: chainer/chainer/functions/array/dstack.py
imports: import numpy
  import six
  import chainer
  from chainer import backend
  from chainer import function_node
  from chainer.utils import type_check
label_desc: Use image node_id 3 for calling the Dstack obj's underlying member method code with example usage: obj.backward(indexes, grad_outputs) and returns: chainer, gy, unknown, gy