本文将介绍如何使用 Keras 框架构建卷积神经网络(CNN)进行图像识别。CNN 是深度学习中用于图像识别的重要模型,具有强大的特征提取能力。
基础概念
卷积层(Convolutional Layer)
卷积层是 CNN 的核心组成部分,用于提取图像的特征。
池化层(Pooling Layer)
池化层用于降低特征图的空间维度,减少计算量,并提高模型的鲁棒性。
激活函数(Activation Function)
激活函数用于引入非线性,使模型能够学习更复杂的特征。
实践步骤
- 导入库
import keras
from keras.models import Sequential
from keras.layers import Conv2D, MaxPooling2D, Flatten, Dense
- 构建模型
model = Sequential()
model.add(Conv2D(32, (3, 3), activation='relu', input_shape=(64, 64, 3)))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
- 编译模型
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
- 训练模型
model.fit(x_train, y_train, batch_size=32, epochs=10)
- 评估模型
score = model.evaluate(x_test, y_test)
print('Test accuracy:', score[1])
扩展阅读
想要了解更多关于 Keras 和 CNN 的知识,可以阅读以下文章: