本文主要是介绍【训练与预测】02 - 完整的模型验证套路,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
02 - 完整的模型验证套路
模型图
验证一个模型就是指使用已经训练好的模型,然后给它提供输入。
test.py
import torch
import torchvision
from PIL import Imagedevice = torch.device("cuda" if torch.cuda.is_available() else "cpu")
image_path = r"images/鸡毛.jpg"
# 加入.convert("RGB")可以适应各种格式的图片,例如png是RGBA四个通道,转换后变为类似jpg的三个通道RGB
image = Image.open(image_path).convert("RGB")
# 重新变换图片尺寸,然后转换为张量
transform = torchvision.transforms.Compose([torchvision.transforms.Resize((32, 32)),torchvision.transforms.ToTensor()])image = transform(image)
# 输出图片尺寸
print(image.shape)
# 加载模型
model = torch.load(r"myNet_pth/myNet_trained_9.pth")
# 将模型用GPU加载
model = model.to(device)
# 使用图片
image = torch.reshape(image, (1, 3, 32, 32))
# 将图片用GPU加载
image = image.to(device)
# 模型设置为测试模式
model.eval()
# 忽略梯度
with torch.no_grad():output = model(image)print(output)
print(output.argmax(1))
注意,如果是使用GPU保存的模型,然后使用CPU预测的话,需要在torch.load中加入另一个参数:map_location=torch.device(“cpu”)
这边我使用一个epoch=30的模型进行预测。
CIFAR10数据集的输出对应类别:
这篇关于【训练与预测】02 - 完整的模型验证套路的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!