input: Write a function to generate a neural network model with TensorFlow and Python for classifying hand-written digits from the MNIST dataset. If the dataset is loaded successfully and the model is trained and tested successfully, return True. If the dataset fails to load or the model fails to train and test, return False.
  assert neural_network_mnist()==True
output: def neural_network_mnist():
      try:
          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 test_acc > 0.9
      except:
          return False