pytorch单张照片预测
时间: 2023-06-29 07:15:30 浏览: 145
要使用 PyTorch 进行单张照片预测,通常需要进行以下步骤:
1. 准备数据:将单张照片转换为模型可接受的格式,例如将其转换为 PyTorch 的 Tensor 对象。
2. 加载预训练模型:下载或加载已经训练好的模型,例如在 ImageNet 数据集上进行训练的卷积神经网络模型。
3. 运行模型:使用加载的模型对输入的照片进行预测,输出预测结果。
下面是一个简单的示例代码,以 PyTorch 官方提供的 ResNet-18 模型为例,对单张猫的图片进行分类预测:
```python
import torch
import torchvision.transforms as transforms
from PIL import Image
# 加载模型
model = torch.hub.load('pytorch/vision:v0.9.0', 'resnet18', pretrained=True)
model.eval()
# 转换图片
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]
)
])
img = Image.open('cat.jpg')
img_tensor = transform(img).unsqueeze(0)
# 运行模型
with torch.no_grad():
output = model(img_tensor)
# 解析输出
classes = torch.hub.load('pytorch/vision:v0.9.0', 'imagenet_labels')
_, pred = output.topk(1, 1)
print('Prediction:', classes[pred])
```
其中,`transform` 对象将图片转换为 Tensor 格式,并进行了归一化;`model` 对象加载了预训练的 ResNet-18 模型;`output` 对象是模型的输出结果,使用 `topk` 方法获取概率最高的类别,并使用 `classes` 对象将类别编号转换为可读的类别名称。
阅读全文