title: What is the difference between tf.keras.layers.Input() and tf.keras.layers.Flatten()
body: <p>I have seen multiple uses of both <code>tf.keras.layers.Flatten()</code> (ex. <a href="https://www.tensorflow.org/tutorials/generative/autoencoder#first_example_basic_autoencoder" rel="nofollow noreferrer">here</a>) and <code>tf.keras.layers.Input()</code> (ex. <a href="https://www.tensorflow.org/tutorials/generative/autoencoder#define_a_convolutional_autoencoder" rel="nofollow noreferrer">here</a>). After reading the documentation, it is not clear to me</p>
  <ol>
  <li>whether either of them uses the other</li>
  <li>whether both can be used interchangeably when introducing to a model an input layer (let's say with dimensions <code>(64, 64)</code>)</li>
  </ol>