卷积神经网络实现图像识别代码
时间: 2024-06-19 19:01:02 浏览: 251
卷积神经网络(Convolutional Neural Network, CNN)在图像识别中起着关键作用,它通过特殊的卷积层、池化层和全连接层来学习图像特征并做出分类。以下是一个简单的Python代码片段,使用Keras库来构建一个基本的CNN模型进行图像识别,这里以MNIST手写数字识别为例:
```python
# 导入必要的库
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=(28, 28, 1))) # 输入是28x28灰度图像
model.add(MaxPooling2D(pool_size=(2, 2)))
# 可能添加更多卷积层和池化层...
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
# 将二维数据展平为一维输入给全连接层
model.add(Flatten())
# 添加全连接层进行分类
model.add(Dense(128, activation='relu'))
model.add(Dense(10, activation='softmax')) # 输出层有10个节点,对应0-9共10个类别
# 编译模型
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
# 训练模型
# model.fit(x_train, y_train, epochs=10, validation_data=(x_test, y_test))
# 使用模型进行预测
# predictions = model.predict(new_image)
# 进行模型评估或保存
# model.evaluate(x_test, y_test)
# model.save('my_model.h5')
```
阅读全文