🧠 PyTorch 是什么?
PyTorch 是一个开源的深度学习框架,由 Facebook AI 开发,它的特点是:
- 易用性强:Python风格代码,好写好调试
- 动态图机制:代码运行即图构建,更灵活
- 支持GPU:训练快,效率高
- 社区活跃:资料多,支持好
📸 torchvision 是什么?
torchvision 是 PyTorch 的官方图像处理工具包,它包含:
- 预训练模型(如 ResNet、MobileNet、EfficientNet)
- 常见数据集(如 CIFAR10、ImageNet、MNIST)
- 图像变换工具(transforms,如裁剪、归一化等)
✅ PyTorch + torchvision 适合做什么?
它们组合起来特别适合做:
- 图像分类
- 目标检测(支持 Faster-RCNN 等)
- 图像分割
- 迁移学习
- 自定义模型训练
🧪 在你这个项目中:
- PyTorch:用于搭建 BCS 分类模型
- torchvision:
- 用
ImageFolder
读取图片 - 用
transforms
做预处理 - 用
mobilenet_v3
、resnet18
等预训练模型做分类
- 用
这张图展示了使用 PyTorch + torchvision 进行图像分类的标准工作流程,简单直观,适合入门理解整个训练流程:
🔄 工作流程逐步解释:
📸 Dataset(数据集)
原始图片数据,分好类放在文件夹里(通常是train/0
,train/1
这样)📁 ImageFolder Dataset
使用torchvision.datasets.ImageFolder
加载数据,它会自动根据子文件夹名来分配类别标签。⚙️ transforms(图像变换)
使用transforms
对图像进行预处理,如裁剪、缩放、标准化等,以适配模型输入要求。📈 Train / Classify(训练 / 分类)
构建分类模型(通常是 CNN),训练并评估分类性能。🔁 Pre-trained Model(预训练模型)
加载如resnet18
、efficientnet
等模型,并可选择是否使用其预训练权重(如在 ImageNet 上预训练过的)。📦 DataLoader(数据加载器)
使用torch.utils.data.DataLoader
来高效地批量加载训练数据,支持多线程、shuffle 等功能。
📌 核心理念:
- 用
ImageFolder
管理数据结构 - 用
transform
对图像进行标准预处理 - 用
DataLoader
管理训练加载效率 - 用
预训练模型
加快收敛和提升精度 - 最后训练得到一个分类模型,对图像进行 BCS 等级判断