input: Write a function to generate a neural network model using TensorFlow and Python for classifying handwritten digits from the MNIST dataset. The function should include importing the MNIST data, defining the network parameters, creating the model, defining the loss and optimizer, initializing the variables, training the model, and printing the accuracy after training.
  assert generation_tensorflow_model()==True
output: 
  def generation_tensorflow_model():
      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)
      print(f'Test accuracy: {test_acc}')
  
      return test_acc > 0.98
  