title: TensorFlow 2.0: Save and load a model that contains a LSTM layer, while the load commond failed with ValueError
body: <p>When I was trying to save and load a model that contains a LSTM layer, the load commond failed with <strong><em>ValueError: Could not find matching function to call loaded from the SavedModel</em></strong>.</p>
  
  <pre><code>class RegNet(Model):
      def __init__(self,
               intermediate_dim=50,
               state_dim=9,
               name='RegNet',
               **kwargs):
          super(RegNet, self).__init__()
          self.d1 = Dense(intermediate_dim, activation='relu')
          self.d2 = Dense(state_dim, activation='relu')
          self.h = LSTM(state_dim, activation='sigmoid', return_sequences=True)
          self.o = Dense(state_dim, activation='softmax')
  
      def call(self, x):
          x = self.d1(x)
          x = self.d2(x)
          x = self.h(x)
          y = self.o(x)
          return y
  
  regNet = RegNet()
  ...
  # Export the model to a SavedModel
  regNet.save(regNet_ckpt_dir, save_format='tf')
  # Recreate the exact same model
  tf.keras.models.load_model(regNet_ckpt_dir)
  </code></pre>
  
  <p>The error report:</p>
  
  <pre><code>&gt; ValueError: Could not find matching function to call loaded from the SavedModel. Got:
    Positional arguments (2 total):
      * Tensor("x:0", shape=(None, 1, 20), dtype=float32)
      * Tensor("training:0", shape=(), dtype=bool)
    Keyword arguments: {}
  
  Expected these arguments to match one of the following 4 option(s):
  
  Option 1:
    Positional arguments (2 total):
      * TensorSpec(shape=(None, 1, 20), dtype=tf.float32, name='input_1')
      * False
    Keyword arguments: {}
  
  Option 2:
    Positional arguments (2 total):
      * TensorSpec(shape=(None, 1, 20), dtype=tf.float32, name='x')
      * False
    Keyword arguments: {}
  
  Option 3:
    Positional arguments (2 total):
      * TensorSpec(shape=(None, 1, 20), dtype=tf.float32, name='x')
      * True
    Keyword arguments: {}
  
  Option 4:
    Positional arguments (2 total):
      * TensorSpec(shape=(None, 1, 20), dtype=tf.float32, name='input_1')
      * True
    Keyword arguments: {}
  </code></pre>
  
  <p><strong>When I comment the LSTM layer, the load command will succeed. Where is the problem? We cannot save and load a model with LSTM layer in TensorFlow 2.0?</strong></p>