cnn图像分类代码python
时间: 2023-08-06 10:11:51 浏览: 220
CNN实现图片分类,python代码
5星 · 资源好评率100%
这是一个基于卷积神经网络(CNN)的图像分类代码示例,使用Python语言和Keras库。
```python
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(Conv2D(64, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Conv2D(128, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
# 添加全连接层
model.add(Flatten())
model.add(Dense(256, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
# 编译模型
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
# 加载数据集并训练模型
from keras.preprocessing.image import ImageDataGenerator
train_datagen = ImageDataGenerator(rescale=1./255, shear_range=0.2, zoom_range=0.2, horizontal_flip=True)
test_datagen = ImageDataGenerator(rescale=1./255)
train_set = train_datagen.flow_from_directory('dataset/training_set', target_size=(64, 64), batch_size=32, class_mode='binary')
test_set = test_datagen.flow_from_directory('dataset/test_set', target_size=(64, 64), batch_size=32, class_mode='binary')
model.fit_generator(train_set, steps_per_epoch=8000, epochs=25, validation_data=test_set, validation_steps=2000)
```
这个代码示例使用了3个卷积层和3个池化层,以及2个全连接层。训练数据集和测试数据集分别位于'dataset/training_set'和'dataset/test_set'文件夹中。在训练过程中,使用了ImageDataGenerator类来进行数据增强,并使用了fit_generator方法来训练模型。
阅读全文