卷积神经网络图像分类代码
时间: 2024-09-20 10:00:23 浏览: 34
卷积神经网络CNN进行图像分类_matlab
5星 · 资源好评率100%
卷积神经网络(Convolutional Neural Network, CNN)在图像分类任务中广泛应用,通常包括卷积层、池化层、全连接层等组成部分。以下是一个简单的Python示例,使用Keras库来实现基本的CNN图像分类:
```python
import keras
from keras.models import Sequential
from keras.layers import Conv2D, MaxPooling2D, Flatten, Dense
# 创建一个Sequential模型
model = Sequential()
# 添加卷积层(例如,32个3x3大小的滤波器,激活函数为ReLU)
model.add(Conv2D(32, (3, 3), activation='relu', input_shape=(img_width, img_height, channels)))
# 添加池化层(如2x2的最大池化)
model.add(MaxPooling2D(pool_size=(2, 2)))
# 可能还会添加更多的卷积层和池化层,视任务复杂度而定
# 将二维特征展平以便输入全连接层
model.add(Flatten())
# 全连接层用于分类,例如512个节点,再加上Softmax激活
model.add(Dense(512, activation='relu'))
# 最终输出层,通常是类别数,比如num_classes个节点,用softmax激活表示概率分布
model.add(Dense(num_classes, activation='softmax'))
# 编译模型,指定损失函数、优化器和评价指标
model.compile(loss=keras.losses.categorical_crossentropy,
optimizer=keras.optimizers.Adam(),
metrics=['accuracy'])
# 使用训练数据拟合模型
model.fit(x_train, y_train, epochs=num_epochs, validation_data=(x_test, y_test))
# 使用模型对新的图像进行预测
predictions = model.predict(new_image)
阅读全文