栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

使用预训练模型

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用预训练模型

1 使用预训练模型

使用torch.hub.load可以一行代码直接在github上下载和调用预训练好的模型到本地中。

import torch
model = torch.hub.load('pytorch/vision', 'alexnet', pretrained=True)
model.eval()

也可以自己将github上预训练好的权重文件下载到本地,再操作它。

这个链接提供了一些预训练模型下载地址。

https://blog.csdn.net/weixin_42535423/article/details/108449854#comments_19068404

但是自己使用resnext101_32x8d时,因为最近github很难打开,在自己服务器上根本ping不动。更别说400M的文件了。

所以可以自己用科学上学的办法,最好是买个Ghelper的VIP,下载大文件很快。

我自己用免费版本不能下大文件。

torch.hub.load可以从本地加载,请注意看官方文档:

https://pytorch.org/docs/stable/hub.html

下载后的注意是权重文件,所以要在自己本地先引入模型,再传入参数。

import torch
from torchvision.models.resnet import *
checkpoint = '../checkpoints/resnext101_32x8d_wsl_checkpoint.pth'
state_dict = torch.load(checkpoint)
model = resnext101_32x8d(pretrained=False)
model.load_state_dict(state_dict)

model.fc = torch.nn.Linear(2048, n_classes)
model.to(device)

主要看上面这段。

其中model = resnext101_32x8d(pretrained=False)是支持哪些模型的,可以看:

https://github.com/pytorch/vision/blob/main/hubconf.py

这里贴出来:

# Optional list of dependencies required by the package
dependencies = ["torch"]

# classification
from torchvision.models.alexnet import alexnet
from torchvision.models.densenet import densenet121, densenet169, densenet201, densenet161
from torchvision.models.efficientnet import (
    efficientnet_b0,
    efficientnet_b1,
    efficientnet_b2,
    efficientnet_b3,
    efficientnet_b4,
    efficientnet_b5,
    efficientnet_b6,
    efficientnet_b7,
)
from torchvision.models.googlenet import googlenet
from torchvision.models.inception import inception_v3
from torchvision.models.mnasnet import mnasnet0_5, mnasnet0_75, mnasnet1_0, mnasnet1_3
from torchvision.models.mobilenetv2 import mobilenet_v2
from torchvision.models.mobilenetv3 import mobilenet_v3_large, mobilenet_v3_small
from torchvision.models.regnet import (
    regnet_y_400mf,
    regnet_y_800mf,
    regnet_y_1_6gf,
    regnet_y_3_2gf,
    regnet_y_8gf,
    regnet_y_16gf,
    regnet_y_32gf,
    regnet_x_400mf,
    regnet_x_800mf,
    regnet_x_1_6gf,
    regnet_x_3_2gf,
    regnet_x_8gf,
    regnet_x_16gf,
    regnet_x_32gf,
)
from torchvision.models.resnet import (
    resnet18,
    resnet34,
    resnet50,
    resnet101,
    resnet152,
    resnext50_32x4d,
    resnext101_32x8d,
    wide_resnet50_2,
    wide_resnet101_2,
)

# segmentation
from torchvision.models.segmentation import (
    fcn_resnet50,
    fcn_resnet101,
    deeplabv3_resnet50,
    deeplabv3_resnet101,
    deeplabv3_mobilenet_v3_large,
    lraspp_mobilenet_v3_large,
)
from torchvision.models.shufflenetv2 import shufflenet_v2_x0_5, shufflenet_v2_x1_0
from torchvision.models.squeezenet import squeezenet1_0, squeezenet1_1
from torchvision.models.vgg import vgg11, vgg13, vgg16, vgg19, vgg11_bn, vgg13_bn, vgg16_bn, vgg19_bn
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/589175.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号