pytorch框架--简单模型预测

模型预测示例

使用训练好的模型进行预测

import torchvision

from model import Tudui
import torch
from PIL import Image

# 读取图像
img = Image.open("./data/train/Dog/9.jpg")
# 数据预处理

# 缩放
transform = torchvision.transforms.Compose([torchvision.transforms.Resize((32, 32)),
                                            torchvision.transforms.ToTensor()])
image = transform(img)
print(image.shape)

# 根据保存方式加载
model = torch.load("tudui_99.pth", map_location=torch.device('cpu'))

# 注意维度转换,单张图片
image1 = torch.reshape(image, (1, 3, 32, 32))

# 测试开关
model.eval()
# 节约性能
with torch.no_grad():
    output = model(image1)
print(output)
# print(output.argmax(1))
# 定义类别对应字典
dist = {0: "飞机", 1: "汽车", 2: "鸟", 3: "猫", 4: "鹿", 5: "狗", 6: "青蛙", 7: "马", 8: "船", 9: "卡车"}
# 转numpy格式,列表内取第一个
a = dist[output.argmax(1).numpy()[0]]
img.show()
print(a)

有监督的对比表示学习(Supervised Contrastive Learning)是一种基于对比损失函数的学习方法,它在pytorch代码中得以实现。 在这个方法中,我们有一对标注数据,例如一张图像和它对应的标签。我们希望通过训练网络,使得在特征空间中相似的样本之间的距离较小,而不相似的样本之间的距离较大。对比学习通过最大化正对比和最小化负对比来实现这一目标。 在pytorch代码中,首先需要定义一个对比损失函数。常见的对比损失函数包括ContrastiveLoss和TripletLoss。这些损失函数可以通过计算欧氏距离或余弦相似度来衡量样本之间的相似度。 接下来,我们需要构建一个神经网络模型。这个模型可以是一个卷积神经网络(Convolutional Neural Network,CNN),也可以是一个全连接神经网络(Fully Connected Neural Network,FCN),具体取决于任务的需要。 然后,我们需要将数据加载模型中进行训练。在pytorch中,可以使用DataLoader来加载数据并进行批处理。可以使用torchvision库来加载常见的图像数据集,如MNIST、CIFAR-10等。 在训练过程中,我们将输入图像传递给网络,并计算损失函数。之后,使用反向传播算法进行优化,更新网络的权重。 最后,我们可以使用训练好的模型进行预测。将输入数据传递给网络,得到输出结果。 通过这样的过程,我们可以使用pytorch代码进行有监督的对比表示学习。这种方法可以应用于图像分类、目标检测、人脸识别等各种机器学习任务中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

默执_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值