Pytorch 网络对输入图像要求固定大小的处理方法

对一些在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) #执行即可

 

你可能感兴趣的:(Linux学习)