ne.py 1.0 KB

12345678910111213141516171819202122232425262728293031323334
  1. import matplotlib.pyplot as plt
  2. import tensorflow as tf
  3. mnist = tf.keras.datasets.mnist
  4. (images_train, labels_train), (images_test, labels_test) = mnist.load_data()
  5. plt.figure()
  6. plt.imshow(images_train[0])
  7. plt.colorbar()
  8. plt.grid(False)
  9. plt.show()
  10. images_train, images_test = images_train / 255.0, images_test / 255.0
  11. model = tf.keras.models.Sequential([
  12. tf.keras.layers.Flatten(input_shape=(28, 28)),
  13. tf.keras.layers.Dense(128, activation='relu'),
  14. tf.keras.layers.Dropout(0.2),
  15. tf.keras.layers.Dense(10)
  16. ])
  17. model.compile(optimizer='adam', loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
  18. metrics=['accuracy'])
  19. model.fit(images_train, labels_train, epochs=5, verbose=0, use_multiprocessing=True)
  20. model.evaluate(images_test, labels_test, verbose=1)
  21. probability_model = tf.keras.Sequential([model, tf.keras.layers.Softmax()])
  22. for i, n in enumerate(labels_test[0:10]):
  23. p: tf.Tensor = probability_model(images_test[i: i + 1])
  24. pv = p.numpy().flatten().tolist()
  25. print(pv.index(max(pv)), n)
  26. print("doen")