python猫狗图像识别代码
时间: 2023-07-23 14:18:45 浏览: 198
以下是一个使用 TensorFlow 和 Keras 库实现的猫狗图像分类器的 Python 代码:
```python
import tensorflow as tf
from tensorflow.keras.preprocessing.image import ImageDataGenerator
# 创建图像数据生成器,对图像进行增强和预处理
train_datagen = ImageDataGenerator(
rescale = 1./255,
rotation_range = 40,
width_shift_range = 0.2,
height_shift_range = 0.2,
shear_range = 0.2,
zoom_range = 0.2,
horizontal_flip = True,
fill_mode = 'nearest'
)
# 加载训练数据集
train_generator = train_datagen.flow_from_directory(
'train',
target_size = (150, 150),
batch_size = 32,
class_mode = 'binary'
)
# 创建卷积神经网络模型
model = tf.keras.models.Sequential([
tf.keras.layers.Conv2D(32, (3,3), activation='relu', input_shape=(150,150,3)),
tf.keras.layers.MaxPooling2D(2,2),
tf.keras.layers.Conv2D(64, (3,3), activation='relu'),
tf.keras.layers.MaxPooling2D(2,2),
tf.keras.layers.Conv2D(128, (3,3), activation='relu'),
tf.keras.layers.MaxPooling2D(2,2),
tf.keras.layers.Conv2D(128, (3,3), activation='relu'),
tf.keras.layers.MaxPooling2D(2,2),
tf.keras.layers.Flatten(),
tf.keras.layers.Dropout(0.5),
tf.keras.layers.Dense(512, activation='relu'),
tf.keras.layers.Dense(1, activation='sigmoid')
])
# 编译模型
model.compile(
loss = 'binary_crossentropy',
optimizer = tf.keras.optimizers.RMSprop(lr=1e-4),
metrics = ['accuracy']
)
# 训练模型
history = model.fit(
train_generator,
steps_per_epoch = 100,
epochs = 100,
verbose = 2
)
# 保存模型
model.save('cat_dog_classifier.h5')
```
该代码使用了 TensorFlow 和 Keras 库来构建卷积神经网络模型,并使用图像数据生成器对训练数据集进行增强和预处理。模型将猫和狗的图像分类为两个类别,其中猫为类别0,狗为类别1。训练完成后,模型将会保存在名为 `cat_dog_classifier.h5` 的文件中。
阅读全文