猫狗识别tensorflow全部代码
时间: 2023-09-30 22:02:01 浏览: 89
以下是一个简单的猫狗识别CNN模型的TensorFlow代码,包括数据预处理、模型构建、训练和评估:
```
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('data/train', target_size=(64, 64), batch_size=32, class_mode='binary')
test_set = test_datagen.flow_from_directory('data/test', target_size=(64, 64), batch_size=32, class_mode='binary')
# 模型构建
model = tf.keras.models.Sequential()
model.add(tf.keras.layers.Conv2D(32, (3, 3), activation='relu', input_shape=(64, 64, 3)))
model.add(tf.keras.layers.MaxPooling2D((2, 2)))
model.add(tf.keras.layers.Conv2D(64, (3, 3), activation='relu'))
model.add(tf.keras.layers.MaxPooling2D((2, 2)))
model.add(tf.keras.layers.Conv2D(128, (3, 3), activation='relu'))
model.add(tf.keras.layers.MaxPooling2D((2, 2)))
model.add(tf.keras.layers.Flatten())
model.add(tf.keras.layers.Dense(128, activation='relu'))
model.add(tf.keras.layers.Dense(1, activation='sigmoid'))
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
# 训练模型
model.fit(train_set, epochs=50, validation_data=test_set)
# 评估模型
test_loss, test_acc = model.evaluate(test_set)
print('Test accuracy:', test_acc)
```
这段代码使用ImageDataGenerator对数据进行预处理,构建了一个包含三个卷积层和两个全连接层的CNN模型,并使用adam优化器和交叉熵损失函数进行模型训练。最后,使用evaluate方法评估模型在测试集上的表现。
阅读全文