欢迎来到 Keras 图像分类实战指南!本教程将带你从零开始使用 Keras 构建卷积神经网络(CNN)进行图像分类任务。🎯
🧱 1. 环境准备
确保已安装以下工具:
- Python 3.x
- TensorFlow/Keras
- Pillow(用于图像处理)
示例代码:
# 安装依赖
!pip install tensorflow pillow
🔄 2. 数据预处理
使用 Keras 的 ImageDataGenerator
进行数据增强和标准化:
from tensorflow.keras.preprocessing.image import ImageDataGenerator
datagen = ImageDataGenerator(
rescale=1./255,
rotation_range=20,
width_shift_range=0.2,
height_shift_range=0.2,
horizontal_flip=True,
vertical_flip=False
)
数据增强效果:
🧠 3. 构建模型
经典的 CNN 结构示例:
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense
model = Sequential([
Conv2D(32, (3,3), activation='relu', input_shape=(150, 150, 3)),
MaxPooling2D(2,2),
Conv2D(64, (3,3), activation='relu'),
MaxPooling2D(2,2),
Flatten(),
Dense(512, activation='relu'),
Dense(1, activation='sigmoid')
])
模型结构图:
📈 4. 训练与评估
使用 model.fit()
训练模型,model.evaluate()
评估性能:
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
history = model.fit(
train_generator,
steps_per_epoch=100,
epochs=15,
validation_data=validation_generator,
validation_steps=50
)
训练曲线可视化:
📁 5. 模型保存与加载
保存训练好的模型:
model.save('image_classifier_model.h5')
加载模型进行预测:
from tensorflow.keras.models import load_model
loaded_model = load_model('image_classifier_model.h5')
模型文件结构:
🚀 下一步学习
想深入理解迁移学习?请查看:
/keras_transfer_learning_tutorial
或探索更复杂的模型架构:
/advanced_cnn_tutorial
✨ 小提示:
- 使用
plt.plot()
可视化训练过程中的准确率和损失 - 尝试调整超参数(如学习率、批次大小)优化效果
- 使用
model.predict()
对新图像进行分类预测
祝你学习顺利!📚