tensorflow 猫狗识别代码
时间: 2024-11-29 09:33:25 浏览: 34
TensorFlow是一个广泛使用的开源机器学习库,常用于深度学习项目。猫狗识别通常是图像分类的一个经典案例,它涉及到卷积神经网络(CNN)。以下是一个简单的Python代码示例,展示了如何使用TensorFlow实现猫狗二分类:
```python
import tensorflow as tf
from tensorflow.keras.preprocessing.image import ImageDataGenerator
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense
# 数据预处理
train_datagen = ImageDataGenerator(rescale=1./255) # 对训练数据归一化
test_datagen = ImageDataGenerator(rescale=1./255) # 对测试数据同样归一化
train_generator = train_datagen.flow_from_directory(
'train_dir', # 训练图片目录
target_size=(150, 150), # 图片大小调整
batch_size=32,
class_mode='binary') # 二分类,标签为dog(1)或cat(0)
validation_generator = test_datagen.flow_from_directory(
'val_dir', # 测试图片目录
target_size=(150, 150),
batch_size=32,
class_mode='binary')
# 构建模型
model = Sequential([
Conv2D(32, (3, 3), activation='relu', input_shape=(150, 150, 3)),
MaxPooling2D(2, 2),
Conv2D(64, (3, 3), activation='relu'),
MaxPooling2D(2, 2),
Flatten(),
Dense(512, activation='relu'),
Dense(1, activation='sigmoid') # 输出层只有一个节点,激活函数为sigmoid用于二分类
])
# 编译模型
model.compile(optimizer='adam',
loss='binary_crossentropy',
metrics=['accuracy'])
# 训练模型
history = model.fit(
train_generator,
epochs=30,
validation_data=validation_generator)
# 查看模型性能
model.evaluate(validation_generator)
```
阅读全文