Pytorch测试单张图片(调用transforms)
import torch
import torch.nn.functional as F
from torch.utils.data import DataLoader
import tqdm
import numpy as np
import argparse
import os.path as osp
import os
# from pytorch_toolbelt.inference import tta
import shutil
import glob
from network import Resnet18, Resnet34, Resnet50, SEnet154, Resnet101, SEResNext50
from PIL import Image
import torchvision.transforms as transforms
from data_process.hp_dataset import HPDataset
net = Resnet50(n_classes=5)
net.eval()
net.load_state_dict(torch.load(r'/src/model-1021-v5.pth'))
net = net.cuda()
img = Image.open(r"/src/img.tif")
img = img.resize((256, 256), Image.BILINEAR)
img = np.array(img)
to_tensor = transforms.Compose([
transforms.ToTensor(),
transforms.Normalize((0.485, 0.456, 0.406), (0.229, 0.224, 0.225))])
img = to_tensor(img)
img = torch.unsqueeze(img, 0) #给最高位添加一个维度,也就是batchsize的大小
img1 = img.cuda()
outputs = net(img1)
outputs = F.softmax(outputs, dim=1)
predicted = torch.max(outputs, dim=1)[1].cpu().item()
outputs = outputs.squeeze(0)
# predicted = torch.max(outputs, dim=1)[1].cpu().numpy()
confidence=outputs[predicted].item()
confidence=round(confidence, 3)
print(confidence)