基于tensorflow的猫狗识别模型设计代码
时间: 2023-09-28 18:05:55 浏览: 111
以下是一个简单的基于 TensorFlow 的猫狗识别模型设计代码,其中使用了 Keras API 构建模型:
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Dense, Flatten, Dropout
# 构建 CNN 模型
model = Sequential()
# 添加卷积层和池化层
model.add(Conv2D(32, (3, 3), activation='relu', input_shape=(150, 150, 3)))
model.add(MaxPooling2D((2, 2)))
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(MaxPooling2D((2, 2)))
model.add(Conv2D(128, (3, 3), activation='relu'))
model.add(MaxPooling2D((2, 2)))
model.add(Conv2D(128, (3, 3), activation='relu'))
model.add(MaxPooling2D((2, 2)))
# 添加全连接层和输出层
model.add(Flatten())
model.add(Dense(512, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(1, activation='sigmoid'))
# 编译模型
model.compile(loss='binary_crossentropy',
optimizer=tf.keras.optimizers.RMSprop(lr=1e-4),
metrics=['acc'])
# 数据预处理
train_datagen = tf.keras.preprocessing.image.ImageDataGenerator(rescale=1./255)
test_datagen = tf.keras.preprocessing.image.ImageDataGenerator(rescale=1./255)
train_generator = train_datagen.flow_from_directory(
'train',
target_size=(150, 150),
batch_size=20,
class_mode='binary')
validation_generator = test_datagen.flow_from_directory(
'validation',
target_size=(150, 150),
batch_size=20,
class_mode='binary')
# 训练模型
history = model.fit(
train_generator,
steps_per_epoch=100,
epochs=30,
validation_data=validation_generator,
validation_steps=50)
# 保存模型
model.save('catdog.h5')
在以上代码中,我们首先定义了一个 Sequential 模型,然后添加了卷积层、池化层、全连接层和输出层,最后使用 compile 函数对模型进行编译。接着,我们使用 ImageDataGenerator 类进行数据预处理,并使用 flow_from_directory 函数加载数据集。最后,我们使用 fit 函数对模型进行训练,并使用 save 函数保存模型。
相关推荐


















