使用squential方法:
# 使用suquential 实现手写数字识别
import tensorflow as tf
mnist = tf.keras.datasets.mnist
(x_train,y_train),(x_test,y_test) = mnist.load_data()
x_train,x_test=x_train/255.0,x_test/255.0
model = tf.keras.Sequential([
tf.keras.layers.Flatten(input_shape = (28,28)),
tf.keras.layers.Dense(128,activation = 'relu'),
tf.keras.layers.Dense(10,activation = 'softmax')
])
model.compile(optimizer = 'adam',
loss='sparse_categorical_crossentropy',
metrics = ['sparse_categorical_accuracy'])
model.fit(
x_train,y_train,
epochs = 10,
validation_data = (x_test,y_test),
validation_freq = 2)
model.summary()
使用calss方法:
#使用Class实现手写数字识别
import tensorflow as tf
from tensorflow.keras.layers import Dense,Flatten
from tensorflow.keras import Model
mnist = tf.keras.datasets.mnist
(x_train,y_train),(x_test,y_test)=mnist.load_data()
x_train,x_test=x_train/255,x_test/255
class MnistModel (Model):
def __init__(self):
super(MnistModel, self).__init__()
self.flaten = Flatten()
self.d1 = Dense(128,activation = 'relu')
self.d2 = Dense(10,activation = 'softmax')
def call(self, x):
x=self.flatten(x)
x=self.d1(x)
y=self.d2(x)
return y
model= MnistModel()
model.compile(optimizer = 'adam',
loss='sparse_categorical_crossentropy',
metrics = ['sparse_categorical_accuracy'])
model.fit(
x_train,y_train,
epochs = 10,
validation_data = (x_test,y_test),
validation_freq = 2)
model.summary()