input: Write a function to create a machine learning model in Python that can recognize handwritten digits from 0 to 9 using the MNIST dataset. The function should load the data, preprocess it, define the model architecture, compile the model, and fit the model. The function should return the trained model.
  assert isinstance(create_digit_recognition_model(), Model)
  assert create_digit_recognition_model().history['accuracy'][-1] > 0.9
  assert create_digit_recognition_model().history['val_accuracy'][-1] > 0.9
output: def create_digit_recognition_model():
      from tensorflow.keras.datasets import mnist
      from tensorflow.keras.models import Sequential
      from tensorflow.keras.layers import Dense, Flatten
      from tensorflow.keras.utils import to_categorical
      from tensorflow.keras.optimizers import Adam
  
      (x_train, y_train), (x_test, y_test) = mnist.load_data()
      x_train = x_train.reshape(-1, 28*28) / 255.0
      x_test = x_test.reshape(-1, 28*28) / 255.0
      y_train = to_categorical(y_train, 10)
      y_test = to_categorical(y_test, 10)
  
      model = Sequential([
          Flatten(input_shape=(28*28,)),
          Dense(128, activation='relu'),
          Dense(64, activation='relu'),
          Dense(10, activation='softmax')
      ])
  
      model.compile(optimizer=Adam(), loss='categorical_crossentropy', metrics=['accuracy'])
      model.fit(x_train, y_train, validation_data=(x_test, y_test), epochs=10, batch_size=32)
  
      return model