水果图像分类python
时间: 2023-07-08 14:38:55 浏览: 42
好的,下面是一个使用TensorFlow实现水果图像分类的简单示例代码,仅供参考:
```python
import tensorflow as tf
from tensorflow.keras.preprocessing.image import ImageDataGenerator
# 设置随机数种子,确保可重复性
tf.random.set_seed(42)
# 设置图片大小和批次大小
IMG_SIZE = (224, 224)
BATCH_SIZE = 32
# 创建数据增强器
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'
)
# 加载训练集和验证集
train_dataset = train_datagen.flow_from_directory(
'path/to/train/directory',
target_size=IMG_SIZE,
batch_size=BATCH_SIZE,
class_mode='categorical'
)
val_datagen = ImageDataGenerator(rescale=1./255)
val_dataset = val_datagen.flow_from_directory(
'path/to/validation/directory',
target_size=IMG_SIZE,
batch_size=BATCH_SIZE,
class_mode='categorical'
)
# 创建模型
model = tf.keras.models.Sequential([
tf.keras.layers.Conv2D(64, (3,3), activation='relu', input_shape=(224,224,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.Flatten(),
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dense(3, activation='softmax')
])
# 编译模型
model.compile(
loss='categorical_crossentropy',
optimizer=tf.keras.optimizers.Adam(learning_rate=0.001),
metrics=['accuracy']
)
# 训练模型
history = model.fit(
train_dataset,
epochs=10,
validation_data=val_dataset
)
# 评估模型
test_datagen = ImageDataGenerator(rescale=1./255)
test_dataset = test_datagen.flow_from_directory(
'path/to/test/directory',
target_size=IMG_SIZE,
batch_size=BATCH_SIZE,
class_mode='categorical'
)
test_loss, test_acc = model.evaluate(test_dataset)
print('Test accuracy:', test_acc)
```
上述代码使用了TensorFlow中的Keras接口,创建了一个简单的卷积神经网络模型,并使用ImageDataGenerator来进行数据增强和加载数据。模型训练完成后,使用测试集对模型进行评估,计算准确率。你需要将代码中的路径和类别数等参数修改为你自己的数据集。