code: def _extract_gates(x, n_split=5):
      """Extract gates by split.
  
      This is different from ``_extract_gates`` in lstm.py,
      which is as follows::
  
              r = x.reshape((x.shape[0], x.shape[1] // 4, 4) + x.shape[2:])
              return (r[:, :, i] for i in six.moves.range(4))
  
      In other words, it thinly slices ``x`` and merge them,
      while this thickly slices ``x``.
  
      """
      r = x.reshape(
          (x.shape[0], n_split, x.shape[1] // n_split) + x.shape[2:]
      )
      return (r[:, i, :] for i in six.moves.range(n_split))
  
file_path: chainer/chainer/functions/rnn/tree_lstm.py
imports: import numpy
  import six
  import chainer
  from chainer import backend
  from chainer.backends import cuda
  from chainer import function
  from chainer.utils import type_check
  import chainerx
label_desc: Use image node_id 1 for calling a global function with example usage: _extract_gates(x, n_split) and returns: unknown