pyhton猫狗识别代码
时间: 2023-11-14 09:03:22 浏览: 117
基于python+VGG16+AlexNet实现的猫狗识别+数据集+源码(毕业设计&课程设计&项目开发)
5星 · 资源好评率100%
Python猫狗识别代码可以使用深度学习模型实现。下面是一个简单的代码示例:
```python
import tensorflow as tf
from tensorflow.keras.preprocessing.image import ImageDataGenerator
# 创建猫狗识别模型
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.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'])
# 数据预处理
train_datagen = ImageDataGenerator(rescale=1./255)
validation_datagen = ImageDataGenerator(rescale=1./255)
train_generator = train_datagen.flow_from_directory(
'train_data_directory',
target_size=(150, 150),
batch_size=20,
class_mode='binary')
validation_generator = validation_datagen.flow_from_directory(
'validation_data_directory',
target_size=(150, 150),
batch_size=20,
class_mode='binary')
# 训练模型
model.fit(
train_generator,
steps_per_epoch=100,
epochs=30,
validation_data=validation_generator,
validation_steps=50,
verbose=2)
# 保存模型
model.save('cat_dog_classifier.h5')
```
上述代码建立了一个简单的卷积神经网络模型,使用`ImageDataGenerator`预处理数据,将图像大小调整为150x150,并将像素值标准化到0到1之间。利用训练集`train_data_directory`和验证集`validation_data_directory`进行模型的训练和验证。最后将训练好的模型保存为`cat_dog_classifier.h5`文件。可以在训练好的模型上进行猫狗识别任务的预测。
阅读全文