TorchVision的使用方法、更改默认路径

TorchVision的使用

1. 转换和增强图像

torchvision.transforms.v2

参数作用
Resize将输入调整为给定大小
RandomShortestSize随机调整输入的大小
RandomResize随机调整输入的大小
RandomCrop在随机位置裁剪输入
RandomResizedCrop裁剪输入的随机部分并将其调整为给定大小
RandomIoUCrop随机 IoU 裁剪转换
CenterCrop在中心裁剪输入
FiveCrop将图像或视频裁剪为四个角和中央裁剪
TenCrop将图像或视频裁剪为四个角,中央裁剪加上这些角的翻转版本(默认使用水平翻转)
RandomHorizontalFlip以给定的概率水平翻转输入
RandomVerticalFlip以给定的概率垂直翻转输入
Pad用给定的“pad”值填充所有侧面的输入
RandomRotation按角度旋转输入
RandomAffine随机仿射变换:输入保持中心不变
RandomPerspective以给定的概率对输入执行随机透视变换
ElasticTransform使用弹性变换来转换输入

2. 模型和预训练权重

该子包包含用于寻址的模型的定义 不同的任务,包括:图像分类、像素语义 分割, 对象检测, 实例分割, 人 关键点检测、视频分类和光流

TorchVision使用PyTorch torch.hub为每个提供的架构提供预先训练的权重。实例化预先训练的模型会将其权重下载到缓存目录中。可以使用TORCH_HOME环境变量设置此目录。

修改缓存目录方法:

  1. 设置TORCH_HOME环境变量

    变量名:TORCH_HOME

    变量值:自己定义的缓存路径

    在这里插入图片描述

    保存后如果不生效请重启电脑尝试

  2. 临时改变环境变量(但是每次都要加上这部分代码)

    import os
    os.environ['TORCH_HOME']='路径'
    

在使用预训练模型之前,必须对图像进行预处理 (使用正确的分辨率/插值调整大小,应用推理变换, 重新调整值等)。没有标准方法可以做到这一点,因为它取决于 如何训练给定模型。它可能因型号系列、变体或 均匀重量版本。使用正确的预处理方法至关重要,并且 否则可能会导致精度降低或输出不正确。

列出和检索可用模型:

all_models = list_models()
classification_models = list_models(module=models)

初始化模型:

m1 = get_model("mobilenet_v3_large", weights=None)
m2 = get_model("quantized_mobilenet_v3_large", weights="DEFAULT")

获取权重:

weights = get_weight("MobileNet_V3_Large_QuantizedWeights.DEFAULT")

weights_enum = get_model_weights("quantized_mobilenet_v3_large")

weights_enum2 = get_model_weights(models.quantization.mobilenet_v3_large)

3. 使用 Hub 中的模型

大多数预训练模型都可以直接通过 PyTorch Hub 访问,而无需安装 TorchVision。

# Option 1: 将权重参数作为字符串传递
model = torch.hub.load("pytorch/vision", "resnet50", weights="IMAGENET1K_V2")

# Option 2: 将权重参数作为枚举传递
weights = torch.hub.load("pytorch/vision", "get_weight", weights="ResNet50_Weights.IMAGENET1K_V2")
model = torch.hub.load("pytorch/vision", "resnet50", weights=weights)

通过 PyTorch Hub 检索特定模型的所有可用权重:

weight_enum = torch.hub.load("pytorch/vision", "get_model_weights", name="resnet50")
print([weight for weight in weight_enum])
  • 20
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神奇的布欧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值