title: How using 'tf.compat.v1.estimator.inputs.pandas_input_fn ' to feed a multihead tensorflow model for multitask learning?
body: <p>I'm trying to feed a tensorflow multihead model with a pandas dataframe.</p>
  <p>The input function is following :</p>
  <pre><code>feature_column_names = [...]
  
  input_fn_test_action = tf.compat.v1.estimator.inputs.pandas_input_fn(
          x=test_preflop_dataframe[feature_column_names],
          y=test_preflop_dataframe[['target1','target2']],
          batch_size=BATCH,
          num_epochs=EPOCHS,
          shuffle=True,
          queue_capacity=1000,
          target_column='target'
      )
  </code></pre>
  <p>It seems working.</p>
  <p>Then I build the multiheaded model as following :</p>
  <pre><code>feature_columns = [ ... ]
  
  
  head1 = tf.estimator.MultiLabelHead(n_classes = 4,
                                      weight_column=weights,
                                      label_vocabulary=Action_vocab,
                                      loss_reduction=tf.losses.Reduction.SUM_OVER_BATCH_SIZE,
                                      loss_fn=None,
                                      name='head1'
                                      )
  
  head2 = tf.estimator.RegressionHead(label_dimension=1,
                                      weight_column=weights,
                                      loss_reduction=tf.losses.Reduction.SUM_OVER_BATCH_SIZE,
                                      loss_fn=None,
                                      inverse_link_fn=None,
                                      name='head2'
                                      )
                                      
  multi_head = tf.estimator.MultiHead([head1, head2])   
  
  model1 = tf.estimator.DNNEstimator(head = multi_head,
                                     hidden_units = [14,9,6],
                                     feature_columns = feature_columns,
                                     model_dir='./Model3',
                                     optimizer=tf.keras.optimizers.Adam(learning_rate=LRATE, beta_1= 0.9,beta_2=0.999, epsilon = 1e-08),
                                     activation_fn=tf.nn.softmax,
                                     dropout=DROPOUT,
                                     config=tf.estimator.RunConfig().replace(save_summary_steps=10,save_checkpoints_secs=60),
                                     warm_start_from=None,
                                     batch_norm=True
                                     )
  </code></pre>
  <p>Seems working too...</p>
  <p>But when I try to train with this :</p>
  <pre><code>    hookModel1 = tf.estimator.experimental.stop_if_no_decrease_hook(model1, metric_name='average_loss', max_steps_without_decrease=5000, min_steps=5000,run_every_secs=120, run_every_steps=None,)
      
      train_spec1 = tf.estimator.TrainSpec(input_fn=input_fn_train_action,hooks=[hookModel1])
      
      eval_spec1 = tf.estimator.EvalSpec(input_fn=input_fn_test_action,start_delay_secs = 60,throttle_secs = 60)
  
      tf.estimator.train_and_evaluate(model1, train_spec1, eval_spec1)
  </code></pre>
  <p>I've got this error :</p>
  <p>Traceback (most recent call last): (...)
  raise ValueError('labels has missing values for head(s): {}'.format(
  ValueError: labels has missing values for head(s): ['head1', 'head2']</p>
  <p>I guess the model cannot associate each head with corresponding label because 'tf.compat.v1.estimator.inputs.pandas_input_fn' returns a dict of feature but an array of labels (two in this case) but without name to associate with heads and multihead have to be fed with a dict of labels with head specification <code>{'head1' : [label_array1], 'head2' : [label_array2]}</code>.</p>
  <p>Is someone has a solution for this ?</p>