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])

你可能感兴趣的:(pytorch,torchvision,深度学习,数据增强,数据集,迁移学习,模型)