PyTorch + torchvision是什么

发布于:2025-04-01 ⋅ 阅读:(24) ⋅ 点赞:(0)

🧠 PyTorch 是什么?

PyTorch 是一个开源的深度学习框架,由 Facebook AI 开发,它的特点是:

  • 易用性强:Python风格代码,好写好调试
  • 动态图机制:代码运行即图构建,更灵活
  • 支持GPU:训练快,效率高
  • 社区活跃:资料多,支持好

📸 torchvision 是什么?

torchvision 是 PyTorch 的官方图像处理工具包,它包含:

  1. 预训练模型(如 ResNet、MobileNet、EfficientNet)
  2. 常见数据集(如 CIFAR10、ImageNet、MNIST)
  3. 图像变换工具(transforms,如裁剪、归一化等)

✅ PyTorch + torchvision 适合做什么?

它们组合起来特别适合做:

  • 图像分类
  • 目标检测(支持 Faster-RCNN 等)
  • 图像分割
  • 迁移学习
  • 自定义模型训练

🧪 在你这个项目中:

  • PyTorch:用于搭建 BCS 分类模型
  • torchvision
    • ImageFolder 读取图片
    • transforms 做预处理
    • mobilenet_v3resnet18 等预训练模型做分类

在这里插入图片描述
这张图展示了使用 PyTorch + torchvision 进行图像分类的标准工作流程,简单直观,适合入门理解整个训练流程:


🔄 工作流程逐步解释:

  1. 📸 Dataset(数据集)
    原始图片数据,分好类放在文件夹里(通常是 train/0, train/1 这样)

  2. 📁 ImageFolder Dataset
    使用 torchvision.datasets.ImageFolder 加载数据,它会自动根据子文件夹名来分配类别标签。

  3. ⚙️ transforms(图像变换)
    使用 transforms 对图像进行预处理,如裁剪、缩放、标准化等,以适配模型输入要求。

  4. 📈 Train / Classify(训练 / 分类)
    构建分类模型(通常是 CNN),训练并评估分类性能。

  5. 🔁 Pre-trained Model(预训练模型)
    加载如 resnet18efficientnet 等模型,并可选择是否使用其预训练权重(如在 ImageNet 上预训练过的)。

  6. 📦 DataLoader(数据加载器)
    使用 torch.utils.data.DataLoader 来高效地批量加载训练数据,支持多线程、shuffle 等功能。


📌 核心理念

  • ImageFolder 管理数据结构
  • transform 对图像进行标准预处理
  • DataLoader 管理训练加载效率
  • 预训练模型 加快收敛和提升精度
  • 最后训练得到一个分类模型,对图像进行 BCS 等级判断

网站公告

今日签到

点亮在社区的每一天
去签到