基于tensorflow的猫狗识别模型训练代码
时间: 2023-09-28 07:05:55 浏览: 119
以下是基于TensorFlow的猫狗识别模型训练代码,仅供参考:
import tensorflow as tf
import os
import numpy as np
import cv2
# 设置训练和验证数据的路径
train_dir = '/path/to/train'
validation_dir = '/path/to/validation'
# 设置训练和验证数据的大小
img_width, img_height = 150, 150
# 设置训练参数
epochs = 50
batch_size = 20
nb_train_samples = 2000
nb_validation_samples = 800
# 构建模型
model = tf.keras.models.Sequential([
tf.keras.layers.Conv2D(32, (3, 3), activation='relu', input_shape=(img_width, img_height, 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 = tf.keras.preprocessing.image.ImageDataGenerator(
rescale=1. / 255,
shear_range=0.2,
zoom_range=0.2,
horizontal_flip=True)
validation_datagen = tf.keras.preprocessing.image.ImageDataGenerator(rescale=1. / 255)
train_generator = train_datagen.flow_from_directory(
train_dir,
target_size=(img_width, img_height),
batch_size=batch_size,
class_mode='binary')
validation_generator = validation_datagen.flow_from_directory(
validation_dir,
target_size=(img_width, img_height),
batch_size=batch_size,
class_mode='binary')
# 训练模型
history = model.fit_generator(
train_generator,
steps_per_epoch=nb_train_samples // batch_size,
epochs=epochs,
validation_data=validation_generator,
validation_steps=nb_validation_samples // batch_size)
# 保存模型
model.save('cats_and_dogs_small_1.h5')
在上面的代码中,我们使用tf.keras构建了一个卷积神经网络模型,并使用ImageDataGenerator对数据进行了预处理。然后调用fit_generator方法对模型进行训练,最后保存模型。
相关推荐















