1、什么是CNN

卷积神经网络(Convolutional Neural Network,简称CNN)是一种深度学习网络,它是一种特殊的前馈神经网络,它的架构是由一系列卷积层和池化层(pooling layer)组成,通常在最后接上一个全连接层,它的主要作用是用来识别图像中的特征。

2、Keras实现CNN

Keras是一个非常强大的深度学习框架,可以用来实现CNN。Keras提供了一些常用的CNN模型,可以快速的构建一个CNN模型,如下代码:

from keras.models import Sequential
from keras.layers import Conv2D, MaxPool2D, Dense, Flatten

model = Sequential()
model.add(Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 3)))
model.add(MaxPool2D((2, 2)))
model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dense(10, activation='softmax'))

3、Keras进行CNN训练

在Keras中,可以使用compile()函数来编译模型,它需要指定优化器、损失函数和指标列表。接下来,可以使用fit()函数来训练模型,它需要指定训练数据、batch_size等参数。最后,可以使用evaluate()函数来评估模型,它需要指定测试数据。如下代码:

model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
model.fit(x_train, y_train, batch_size=32, epochs=5)
model.evaluate(x_test, y_test)