docstr: Split hidden state into multi-heads.
  
  Args
  ----------
      x : Tensor [batch, length, d_hidden]
  
  Returns
  -------
      Tensor [batch, n_head, length, d_head]
docstr_tok: ["Split","hidden","state","into","multi-heads",".","Args","--","--","--","--","--","x",":","Tensor","[","batch",",","length",",","d_hidden","]","Returns","--","--","--","-","Tensor","[","batch",",","n_head",",","length",",","d_head","]"]
code: def _split_head(self, F, x: Tensor) -> Tensor:
      """
      Split hidden state into multi-heads.
  
      Args
      ----------
          x : Tensor [batch, length, d_hidden]
  
      Returns
      -------
          Tensor [batch, n_head, length, d_head]
      """
      x = F.reshape(data=x, shape=(0, 0, -4, self.n_head, self.d_head))
      x = F.swapaxes(data=x, dim1=1, dim2=2)
      return x
  
imports: import math
  from typing import List, Optional, Tuple
  from mxnet import init
  from mxnet.gluon import HybridBlock, Parameter, nn
  from mxnet.gluon.contrib.nn import HybridConcurrent
  from gluonts.core.component import validated
  from gluonts.mx import Tensor
label_desc: Use image node_id 2 for calling the SelfAttention obj's underlying member method code with example usage: obj._split_head(F, x) and returns: x