Will there a MLP model in the future version?
Are you satisfied with the resolution of your issue?
<a href="https://docs.google.com/forms/d/e/1FAIpQLSfaP12TRhd9xSxjXZjcZFNXPGk4kc1-qMdv3gc6bEP90vY1ew/viewform?entry.85265664=Yes&entry.2137816233=https://github.com/tensorflow/tensorflow/issues/61710">Yes</a>
<a href="https://docs.google.com/forms/d/e/1FAIpQLSfaP12TRhd9xSxjXZjcZFNXPGk4kc1-qMdv3gc6bEP90vY1ew/viewform?entry.85265664=No&entry.2137816233=https://github.com/tensorflow/tensorflow/issues/61710">No</a>

### Issue type

Feature Request

### Have you reproduced the bug with TensorFlow Nightly?

No

### Source

source

### TensorFlow version

2.13.0

### Custom code

No

### OS platform and distribution

_No response_

### Mobile device

_No response_

### Python version

_No response_

### Bazel version

_No response_

### GCC/compiler version

_No response_

### CUDA/cuDNN version

_No response_

### GPU model and memory

_No response_

### Current behavior?

When building deep learning models like Multi-Layer Perceptrons (MLPs), code reusability and conciseness are crucial factors. Currently, using `tf.keras.Sequential` in TensorFlow allows for convenient creation of sequential models. However, manually adding common operations such as Batch Normalization or Dropout to each layer can lead to code redundancy and an increased burden in terms of coding and maintenance. Therefore, proposing the addition of a feature in TensorFlow to directly create MLPs with Batch Normalization and Dropout is highly beneficial.

Here are several reasons why this feature would be advantageous for TensorFlow users:

1. **Simplified Code**: Users won't need to manually add Batch Normalization and Dropout operations to each layer, resulting in cleaner, more readable, and maintainable code.

2. **Reduced Error Rate**: Manual copy-pasting of code is error-prone, especially as model complexity increases. Automating the integration of Batch Normalization and Dropout operations can reduce issues arising from code errors.

3. **Increased Productivity**: Developers can build and iterate on models more swiftly, focusing on design and parameter tuning rather than rewriting the same code segments for every new model.

4. **Education and Learning**: For newcomers to TensorFlow, this feature can provide a quicker onboarding process, lowering the learning curve and enabling them to grasp and apply deep learning concepts faster.

Certainly, here's the additional information:

I also believe that PyTorch has implemented MLP functionality quite effectively. An example of this can be found in the following URL: [PyTorch MLP](https://pytorch.org/vision/main/generated/torchvision.ops.MLP.html). PyTorch's approach to creating MLPs provides a good reference for how TensorFlow could potentially integrate similar features.

### Standalone code to reproduce the issue

```shell
origin

model = tf.keras.Sequential([
    tf.keras.layers.Dense(128),
    tf.keras.layers.BatchNormalization(),
    tf.keras.layers.ReLU(),
    tf.keras.layers.Dropout(0.2),
    tf.keras.layers.Dense(64),
    tf.keras.layers.BatchNormalization(),
    tf.keras.layers.ReLU(),
    tf.keras.layers.Dropout(0.2),
    tf.keras.layers.Dense(32),
    tf.keras.layers.BatchNormalization(),
    tf.keras.layers.ReLU(),
    tf.keras.layers.Dropout(0.2),
    tf.keras.layers.Dense(10),
])


with MLP model
```python
model = tf.keras.MLP(
    hidden_channels=[128, 64, 32, 10],
    norm_layer=tf.keras.layers.BatchNormalization,
    activation_layer=tf.keras.layers.ReLU,
    dropout=0.2,
)
```
```


### Relevant log output

_No response_