对一些在ImageNet数据集上预训练的model,在分类的时候往往是使用的Fully Connected Layer,且往往是Linear(2048,1000)。而我们的测试图像往往不同于训练时候的224*224*3 ,那么经过以下方法的处理,可以经过网络处理。
import torch
from torchvision import datasets, transforms
import numpy as np
from PIL import Image
filename='hotpot.jpg'
image=Image.open(filename).convert('RGB') #读取图像,转换为三维矩阵
image=image.resize((224,224),Image.ANTIALIAS) #将其转换为要求的输入大小224*224
transform=transforms.Compose([transforms.ToTensor()])
img = transform(image) #转为Tensor
img=img.resize(1,3,224,224) #如果存在要求输入图像为4维的情况,使用resize函数增加一维
output =model(img) #执行即可