Keras六步法搭建网络,以MNIST数据集为例
一、import加载库
加载所需要的库,使用tensorflow库
import tensorflow as tf
二、设置训练集、测试集
设置所需要的训练集和测试集 Mnist数据集:共有7万张图片。其中6万张用于训练神经网络,1万张用于测试神经网络。 每张图片是一个2828像素点的0~9的手写数字图片。 (x_train, y_train) 训练集:(训练集特征,训练集标签) (x_test, y_test) 测试集:(测试集特征,测试集标签) 特征即2828像素点的0~9的手写数字图片 标签即对应数字
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
三、搭建神经网络
拉直层:tf.keras.layers.Flatten() 全连接层:tf.keras.layers.Dense(神经元个数,activation=”激活函数”,kernel_regularizer=正则化方式) 卷积层:tf.keras.layers.Conv2D(fliters=卷积核个数,kernel_size=卷积核尺寸,strides=卷积步长,padding=”valid”or “same”)
model = tf.keras.models.Sequential([
tf.keras.layers.Flatten(),
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dense(10, activation='softmax')
])
四、配置神经网络
在这里设置神经网络的优化器、损失函数及评价标准
model.compile(optimizer='adam',
loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=False),
metrics=['sparse_categorical_accuracy'])
五、执行训练
model.fit(x_train, y_train, batch_size=32, epochs=5, validation_data=(x_test, y_test), validation_freq=1 )
六、打印网络结构及参数
model.summary()
代码
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.models.Sequential([
tf.keras.layers.Flatten(),
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dense(10, activation='softmax')
])
model.compile(optimizer='adam',
loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=False),
metrics=['sparse_categorical_accuracy'])
model.fit(x_train, y_train, batch_size=32, epochs=5, validation_data=(x_test, y_test), validation_freq=1 )
model.summary()
使用class方法搭建网络
class MnistModel(Model):
def __init__(self):
super(MnistModel, self).__init__()
self.flatten = 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()
学习课程:北京大学人工智能实践-TensorFlow2.0
|