读取图片
from PIL import Imageimg_path = "../Yennefer_of_Vengerberg.jpg"
image = Image.open(img_path)
print(image)
转换成灰度图(可选)
image = image.convert('L')
image.show()
转换成RGB格式
image = image.convert('RGB')
因为png格式是四个通道,除了‘RGB’三个通道外,还有一个透明度通道。
所以,我们调用image = image.convert(‘RGB’),保留其颜色通道。
当然,如果图片本来就是三个颜色通道,经过此操作,不变。
加上这一步后,可以适应png jpg各种格式的图片。
Resize&ToTensor
transform = torchvision.transforms.Compose([torchvision.transforms.Resize((32, 32)),torchvision.transforms.ToTensor()])
image = transform(image)
加载之前的模型,并加以验证
model = torch.load('../GPU/tudui_10.pth') # GPU训练的
print(model)
image = torch.reshape(image, (1, 3, 32, 32))
if torch.cuda.is_available():image = image.cuda()
model.eval()
with torch.no_grad():output = model(image)
print(output)
print(output.argmax(1))
注意
1.如果之前是GPU上训练的模型,一定要将图片转成‘GPU’:image = image.cuda()
2.image = torch.reshape(image, (1, 3, 32, 32)) 不要忘了
3.with torch.no_grad(),可以加快验证速度
查看是哪类
没有人类别(叶奈法,巫师)所以换一张deer
ls = ['airplane', 'automobile', 'bird', 'cat', 'deer', 'dog', 'frog', 'horse', 'ship', 'truch']
print('class:{}'.format(ls[output.argmax(1)]))
还挺准(CIFAR10只训练到到第十轮,model = torch.load(‘…/GPU/tudui_10.pth’))
MAYBACH 迈巴赫试试