PyTorch Hub预训练模型直接调用

PyTorch Hub的使用简单到不能再简单,不需要下载模型,只用了一个torch.hub.load()就完成了对图像分类模型AlexNet的调用。

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

下面让我们来看看每个应用的实例。

1、查询可用的模型
用户可以使用torch.hub.list()这个API列出repo中所有可用的入口点。比如你想知道PyTorch Hub中有哪些可用的计算机视觉模型:

torch.hub.list('pytorch/vision')

['alexnet',
'deeplabv3_resnet101',
'densenet121',
...
'vgg16',
'vgg16_bn',
'vgg19',
 'vgg19_bn']

之前错误的

xlmr = torch.hub.load('pytorch/fairseq', 'xlmr.large')
import torch
xlmr = torch.hub.load('pytorch/fairseq:main', 'xlmr.large')

自然语言处理相关的
https://blog.csdn.net/zzx188891020/article/details/105795126

可以按照以下步骤使用 PyTorch 预训练的 MobileNet 模型实现图像分类: 1. 导入必要的库和模块: ```python import torch import torch.nn as nn import torchvision.transforms as transforms import torchvision.datasets as datasets ``` 2. 定义数据预处理方式: ```python transform = transforms.Compose([ transforms.Resize(256), transforms.CenterCrop(224), transforms.ToTensor(), transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]) ]) ``` 3. 加载数据集: ```python train_dataset = datasets.ImageFolder(root='train/', transform=transform) test_dataset = datasets.ImageFolder(root='test/', transform=transform) ``` 4. 定义模型: ```python model = torch.hub.load('pytorch/vision:v0.6.0', 'mobilenet_v2', pretrained=True) num_ftrs = model.classifier[1].in_features model.classifier[1] = nn.Linear(num_ftrs, 10) ``` 5. 定义损失函数和优化器: ```python criterion = nn.CrossEntropyLoss() optimizer = torch.optim.SGD(model.parameters(), lr=0.001, momentum=0.9) ``` 6. 训练模型: ```python num_epochs = 10 batch_size = 32 train_loader = torch.utils.data.DataLoader(dataset=train_dataset, batch_size=batch_size, shuffle=True) test_loader = torch.utils.data.DataLoader(dataset=test_dataset, batch_size=batch_size, shuffle=False) for epoch in range(num_epochs): for i, (images, labels) in enumerate(train_loader): outputs = model(images) loss = criterion(outputs, labels) optimizer.zero_grad() loss.backward() optimizer.step() if (i+1) % 100 == 0: print ('Epoch [{}/{}], Step [{}/{}], Loss: {:.4f}'.format(epoch+1, num_epochs, i+1, len(train_loader), loss.item())) ``` 7. 测试模型: ```python with torch.no_grad(): correct = 0 total = 0 for images, labels in test_loader: outputs = model(images) _, predicted = torch.max(outputs.data, 1) total += labels.size(0) correct += (predicted == labels).sum().item() print('Accuracy of the network on the test images: {} %'.format(100 * correct / total)) ``` 以上是一个简单的图像分类实现示例,可以根据自己的需求进行修改和优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值