docstr: Provides a joint embedding for the target and features.
  
  Parameters
  ----------
  F
  target: (batch_size, sequence_length)
  features: (batch_size, num_features, sequence_length)
  
  Returns
  -------
  Tensor
      A tensor containing a joint embedding of target and features.
      Shape: (batch_size, n_residue, sequence_length)
docstr_tok: ["Provides","a","joint","embedding","for","the","target","and","features",".","Parameters","--","--","--","--","--","F","target",":","(","batch_size",",","sequence_length",")","features",":","(","batch_size",",","num_features",",","sequence_length",")","Returns","--","--","--","-","Tensor","A","tensor","containing","a","joint","embedding","of","target","and","features",".","Shape",":","(","batch_size",",","n_residue",",","sequence_length",")"]
code: def target_feature_embedding(
      self,
      F,
      target,
      features,
  ):
      """
      Provides a joint embedding for the target and features.
  
      Parameters
      ----------
      F
      target: (batch_size, sequence_length)
      features: (batch_size, num_features, sequence_length)
  
      Returns
      -------
      Tensor
          A tensor containing a joint embedding of target and features.
          Shape: (batch_size, n_residue, sequence_length)
      """
      # (batch_size, embed_dim, sequence_length)
      o = self.target_embed(target).swapaxes(1, 2)
      o = F.concat(o, features, dim=1)
      o = self.conv_project(o)
      return o
  
imports: import math
  from typing import List, Optional
  import mxnet
  from mxnet import gluon
  from mxnet.gluon import nn
  from gluonts.core.component import validated
  from gluonts.mx import Tensor
  from gluonts.mx.block.feature import FeatureEmbedder
label_desc: Use image node_id 6 for calling the WaveNet obj's underlying member method code with example usage: obj.target_feature_embedding(F, target, features) and returns: o