在单个图像上评估Pytorch火炬视觉的简单方法

时间:2019-12-01 21:06:11

标签: pytorch torchvision

我在Pytorch v1.3,torchvision v0.4.2上有一个预先训练的模型,如下所示:

import PIL, torch, torchvision
# Load and normalize the image
img_file = "./robot_image.jpg"
img = PIL.Image.open(img_file)
img = torchvision.transforms.ToTensor()((img))
img = 0.5 + 0.5 * (img - img.mean()) / img.std()

# Load a pre-trained network and compute its prediction
alexnet = torchvision.models.alexnet(pretrained=True)

我想测试单个图像,但出现错误:

alexnet(img)
RuntimeError: Expected 4-dimensional input for 4-dimensional weight 64 3 11 11, but got 3-dimensional input of size [3, 741, 435] instead

让模型评估单个数据点的最简单,惯用的方法是什么?

1 个答案:

答案 0 :(得分:3)

AlexNet期望尺寸为4维张量(batch_size x通道x高度x宽度)。您正在提供3维张量。

要将张量更改为大小(1、3、741、435),只需添加以下行:

img = img.unsqueeze(0)

您还需要对图像进行降采样,因为AlexNet希望输入的高度和宽度为224x224。

相关问题