用python写一个猫狗识别代码,附注释
时间: 2023-05-13 11:05:59 浏览: 148
猫狗识别-python程序
5星 · 资源好评率100%
当然可以,以下是一个简单的猫狗识别代码,使用了卷积神经网络(CNN):
```python
import tensorflow as tf
from tensorflow.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('train', target_size=(64, 64), batch_size=32, class_mode='binary')
test_set = test_datagen.flow_from_directory('test', target_size=(64, 64), batch_size=32, class_mode='binary')
# 创建卷积神经网络模型
model = tf.keras.models.Sequential([
tf.keras.layers.Conv2D(32, (3, 3), activation='relu', input_shape=(64, 64, 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.Flatten(),
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dense(1, activation='sigmoid')
])
# 编译模型
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
# 训练模型
model.fit(train_set, epochs=10, validation_data=test_set)
# 保存模型
model.save('cat_dog_classifier.h5')
```
这个代码使用了Keras库和TensorFlow后端,通过ImageDataGenerator加载训练集和测试集,创建了一个简单的卷积神经网络模型,使用binary_crossentropy作为损失函数,使用Adam优化器进行训练。最后,将训练好的模型保存到cat_dog_classifier.h5文件中。
阅读全文