title: model.fit with tensorflow 2.1 and tf.data.Dataset ValueError: Attempt to convert a value TensorSpec
body: <p>I've been using Keras and Tensorflow 1.x for a while, but I am trying to learn and update to tensorflow 2.1 (especially <code>tf.data.Dataset</code>s). I can successfully create a tfrecords file and load it using a <code>tf.data.TFRecordDataset</code>. After parsing the items and some other preprocssing (e.g., normalization) the dataset returns a tuple whose first item is a dictionary containing various types of input (<code>x</code>) tensors and whose second item is a single value/tensor for the target (<code>y</code>) values.</p>
  
  <p>I can train the model by manually iterating over the dataset in batches using <code>tf.GradientTape()</code>. However, when I try to train the model using <code>model.fit</code> the following exception is raised inside the <code>call</code> method of my model the first time I use the inputs.</p>
  
  <pre><code>ValueError: Attempt to convert a value (TensorSpec(shape=(16, 278, 136), dtype=tf.float32, name=None)) with an unsupported type (&lt;class 'tensorflow.python.framework.tensor_spec.TensorSpec'&gt;) to a Tensor.
  </code></pre>
  
  <p>If I print out the inputs inside the <code>call</code> method before trying to use them it shows the type as a TensorSpec and not a Tensor (I have several placeholders in my input dictionary for the time being): </p>
  
  <pre><code>{
      'contextual': {'one_hot': {}, 'multi_hot': {}, 'dense': {}}, 
      'sequential': {
          'one_hot': {}, 
          'multi_hot': {}, 
          'dense': TensorSpec(shape=(16, 278, 136), dtype=tf.float32, name=None)
      }
  }
  </code></pre>
  
  <p>Although, I don't know enough about the internals of Tensorflow to understand if this is expected or not.</p>
  
  <p>Any ideas about why this might be happening or ways to fix it would be greatly appreciated.</p>