code: def multihead_qkv(x, n_state, n_head, train, explain=False):
      c = conv1d(x, "c_attn", n_state * 3, 1, train=train)
      q, k, v = tf.split(c, 3, 2)
      q = split_heads(q, n_head)
      k = split_heads(k, n_head, k=True)
      v = split_heads(v, n_head)
      return q, k, v
  
imports: import functools
  import numpy
  import tensorflow
  from finetune.optimizers.recompute_grads import recompute_grad
  from finetune.util.shapes import shape_list, lengths_from_eos_idx
  from finetune.nn.activations import act_fns
  from finetune.nn.nn_utils import dropout, norm
label_desc: Use image node_id 10 for calling a global function with example usage: multihead_qkv(x, n_state, n_head, train, explain) and returns: q,  k,  v