一、LeNet-5
1.定义LeNet-5模型
model = models.Sequential([
1.1添加一个二维卷积层,有6个过滤器,每个过滤器的尺寸是5x5。输入图像尺寸是28x28像素,具有1个颜色通道,激活函数是relu
layers.Conv2D(6, (5, 5), activation='relu', input_shape=(28, 28, 1)),
1.2添加一个平均池化层
layers.AveragePooling2D((2, 2)),
1.3添加第二个卷积层,有16个过滤器,每个过滤器的尺寸是5x5。激活函数:relu
layers.Conv2D(16, (5, 5), activation='relu'),layers.AveragePooling2D((2, 2)),
1.4添加一个展平层
layers.Flatten(),
1.5添加一个全连接层,有120个输出神经元
layers.Dense(120, activation='relu'),
1.6添加第二个全连接层,有84个输出神经元
layers.Dense(84, activation='relu'),
1.7添加第三个全连接层,有10个输出神经元
layers.Dense(10, activation='softmax')
])
2.编译模型
model.compile(optimizer='adam',loss='categorical_crossentropy',metrics=['accuracy'])
3.训练模型
history=model.fit(train_images,train_labels,epochs=10,batch_size=64,validation_data=(test_images, test_labels))
结果:
4.评估模型
test_loss, test_acc = model.evaluate(test_images, test_labels)
print(f'Test Accuracy: {test_acc:.4f}')
结果:
5.保存文件
model.save('LeNet.h5')
结果: