66 lines
1.5 KiB
Markdown
66 lines
1.5 KiB
Markdown
|
# MobileNetV2 图像分类项目
|
|||
|
|
|||
|
本项目使用PyTorch框架实现基于MobileNetV2的图像分类模型。
|
|||
|
|
|||
|
## 环境要求
|
|||
|
- Python 3.7+
|
|||
|
- PyTorch 1.10+
|
|||
|
- torchvision
|
|||
|
- tqdm
|
|||
|
|
|||
|
安装依赖:
|
|||
|
```bash
|
|||
|
pip install torch torchvision tqdm
|
|||
|
```
|
|||
|
|
|||
|
## 数据准备
|
|||
|
1. 创建以下目录结构:
|
|||
|
```
|
|||
|
train_data/
|
|||
|
1/
|
|||
|
train/
|
|||
|
test/
|
|||
|
model/
|
|||
|
1/
|
|||
|
test_image/
|
|||
|
```
|
|||
|
|
|||
|
2. 将训练图像放入`train_data/1/train`目录,每个类别一个子目录
|
|||
|
3. 将测试图像放入`train_data/1/test`目录,保持相同的类别结构
|
|||
|
|
|||
|
## 训练模型
|
|||
|
运行训练脚本:
|
|||
|
```bash
|
|||
|
python train_mobilenetv2.py
|
|||
|
```
|
|||
|
|
|||
|
训练参数:
|
|||
|
- 训练轮数:20
|
|||
|
- 批量大小:64
|
|||
|
- 学习率:0.0001
|
|||
|
- 优化器:Adam
|
|||
|
- 学习率调度器:ReduceLROnPlateau
|
|||
|
|
|||
|
## 模型保存
|
|||
|
训练好的模型将保存在`model/1/`目录下,文件名包含训练轮数和准确率。
|
|||
|
|
|||
|
## 目录结构
|
|||
|
```
|
|||
|
.
|
|||
|
├── train_mobilenetv2.py # 主训练脚本
|
|||
|
├── pretreatment.ipynb # 数据预处理notebook
|
|||
|
├── test.ipynb # 测试notebook
|
|||
|
├── train_data/ # 训练数据(git忽略)
|
|||
|
│ └── 1/
|
|||
|
│ ├── train/ # 训练图像
|
|||
|
│ └── test/ # 测试图像
|
|||
|
├── model/ # 保存的模型(git忽略)
|
|||
|
│ └── 1/
|
|||
|
└── test_image/ # 测试图像(git忽略)
|
|||
|
```
|
|||
|
|
|||
|
## 注意事项
|
|||
|
- 项目使用预训练的MobileNetV2模型
|
|||
|
- 数据增强包括随机裁剪和水平翻转
|
|||
|
- 如果有GPU会自动使用GPU进行训练
|