以下是基于卷积神经网络的二分类识别玫瑰花和向日葵的代码示例:

import numpy as np
import tensorflow as tf
from tensorflow.keras.preprocessing.image import ImageDataGenerator

# 设置随机种子
np.random.seed(42)
tf.random.set_seed(42)

# 数据路径
train_dir = 'path/to/train'
test_dir = 'path/to/test'

# 数据增强
train_datagen = ImageDataGenerator(
    rescale=1./255,
    rotation_range=20,
    width_shift_range=0.2,
    height_shift_range=0.2,
    shear_range=0.2,
    zoom_range=0.2,
    horizontal_flip=True,
    fill_mode='nearest'
)

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'
)

test_generator = test_datagen.flow_from_directory(
    test_dir,
    target_size=(150, 150),
    batch_size=32,
    class_mode='binary'
)

# 构建模型
model = tf.keras.models.Sequential([
    tf.keras.layers.Conv2D(32, (3, 3), activation='relu', input_shape=(150, 150, 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'])

# 训练模型
history = model.fit(
    train_generator,
    steps_per_epoch=100,
    epochs=30,
    validation_data=test_generator,
    validation_steps=50
)

# 保存模型
model.save('flower_classification_model.h5')

这段代码使用了TensorFlow的ImageDataGenerator进行数据增强,以提高模型的泛化能力。然后使用卷积神经网络构建了模型,包括多个卷积层和池化层,最后通过全连接层进行分类。模型使用binary_crossentropy作为损失函数进行二分类,优化器选择了RMSprop。最后通过调用fit方法进行模型训练,并保存了训练好的模型

基于卷积神经网络的二分类识别玫瑰花和向日葵的代码

原文地址: https://www.cveoy.top/t/topic/h3V9 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录