Exercise 2 - Handwriting Recognition

发布时间 2023-11-30 22:58:47作者: 跑调的弦

Exercise 2 - Handwriting Recognition

在课程中,您学习了如何使用Fashion MNIST 进行分类,这是一个包含服装项目的数据集。还有一个类似的数据集叫做 MNIST,其中包含手写项目--数字 0 到 9。
编写一个 MNIST 分类器,训练达到 99% 或以上的准确率,并且不需要固定数量的 epoch -- 也就是说,一旦达到这个准确率水平,就应该停止训练。
注意事项
它应在少于 10 个历元的时间内取得成功,因此可以将历元数改为 10,但不能再大。
当准确率达到 99% 或更高时,应打印出字符串 "准确率达到 99%,因此取消训练!"
如果您添加了其他变量,请确保使用与类中相同的名称
下面是我为你编写的代码,你会如何完成它呢?


import tensorflow as tf
# YOUR CODE SHOULD START HERE
class myCallback(tf.keras.callbacks.Callback):
  def on_epoch_end(self, epoch, logs={}):
    if(logs.get('accuracy')>0.99):
      print("\nReached 99% accuracy so cancelling training!")
      self.model.stop_training = True
# YOUR CODE SHOULD END HERE

mnist = tf.keras.datasets.mnist

(x_train, y_train),(x_test, y_test) = mnist.load_data()
# YOUR CODE SHOULD START HERE
x_train, x_test = x_train / 255.0, x_test / 255.0

callbacks = myCallback()
# YOUR CODE SHOULD END HERE
model = tf.keras.models.Sequential([
# YOUR CODE SHOULD START HERE
  tf.keras.layers.Flatten(input_shape=(28, 28)),
  tf.keras.layers.Dense(512, activation=tf.nn.relu),
  tf.keras.layers.Dense(10, activation=tf.nn.softmax)  
# YOUR CODE SHOULD END HERE
])

model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

# YOUR CODE SHOULD START HERE
model.fit(x_train, y_train, epochs=10, callbacks=[callbacks])
# YOUR CODE SHOULD END HERE

image