input: Write a function to generate a neural network model using TensorFlow and Python for classifying hand-written digits from the MNIST dataset. The function should train the model and return the accuracy on the test set. If no input data is provided, the function should use the default MNIST dataset.
  
  assert check_mnist_model_accuracy() == "Accuracy: 0.95"
  assert check_mnist_model_accuracy() == "Accuracy: 0.96"
  assert check_mnist_model_accuracy() == "Accuracy: 0.94"
  assert check_mnist_model_accuracy() == "Accuracy: 0.97"
  assert check_mnist_model_accuracy() == "Accuracy: 0.93"
output: def check_mnist_model_accuracy():
      import tensorflow as tf
      from tensorflow.keras import layers, models
      from tensorflow.keras.datasets import mnist
      from tensorflow.keras.utils import to_categorical
  
      (x_train, y_train), (x_test, y_test) = mnist.load_data()
      x_train = x_train.reshape((60000, 28, 28, 1)).astype('float32') / 255
      x_test = x_test.reshape((10000, 28, 28, 1)).astype('float32') / 255
      y_train = to_categorical(y_train)
      y_test = to_categorical(y_test)
  
      model = models.Sequential([
          layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)),
          layers.MaxPooling2D((2, 2)),
          layers.Conv2D(64, (3, 3), activation='relu'),
          layers.MaxPooling2D((2, 2)),
          layers.Conv2D(64, (3, 3), activation='relu'),
          layers.Flatten(),
          layers.Dense(64, activation='relu'),
          layers.Dense(10, activation='softmax')
      ])
  
      model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
      model.fit(x_train, y_train, epochs=5, batch_size=64, validation_split=0.1)
  
      test_loss, test_acc = model.evaluate(x_test, y_test)
      return f"Accuracy: {test_acc:.2f}"