class_docstr: Hierarchical softmax function based on a binary tree.
  
  This function object should be allocated beforehand, and be copied on every
  forward computation, since the initializer parses the given tree. See the
  implementation of :class:`BinaryHierarchicalSoftmax` for details.
  
  Args:
      tree: A binary tree made with tuples like ``((1, 2), 3)``.
  
  .. seealso::
     See :class:`BinaryHierarchicalSoftmax` for details.
code: def backward_cpu(self, inputs, grad_outputs):
      x, t, W = inputs
      (gloss,) = grad_outputs
      gx = numpy.empty_like(x)
      gW = numpy.zeros_like(W)
      for i, (ix, it) in enumerate(six.moves.zip(x, t)):
          gx[i] = self._backward_cpu_one(ix, it, W, gloss, gW)
      return gx, None, gW
  
imports: import copy
  import numpy
  import six
  import chainer
  from chainer.backends import cuda
  from chainer import device_resident
  from chainer import function
  from chainer.initializers import uniform
  from chainer import link
  from chainer import utils
  from chainer.utils import type_check
  from chainer import variable
label_desc: Use image node_id 6 for calling the BinaryHierarchicalSoftmaxFunction obj's underlying member method code with example usage: obj.backward_cpu(inputs, grad_outputs) and returns: gx,  None,  gW