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