ResNet残差网络Pytorch实现——对花的种类进行单数据预测

简介: ResNet残差网络Pytorch实现——对花的种类进行单数据预测

✌ 使用ResNet进行对花的种类进行单数据预测

import os
import json
import torch
from torchvision import transforms
from PIL import Image
# 加载运算设备
device=torch.device('cuda:0' if torch.cuda.is_available() else 'cpu')
# 数据处理
data_transform = transforms.Compose(
        [transforms.Resize(256),
         transforms.CenterCrop(224),
         transforms.ToTensor(),
         transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])])
# 预测图片的路径
img_path='13290033_ebd7c7abba_n.jpg'
# 加载图片
img=Image.open(img_path)
# 将图片进行处理,返回的是tensor
img=data_transform(img)
# 将数据升维,图片是三维,而训练时是4维,因为训练时第一个维度为每个批次的训练数据大小
# 本次预测一个图片,就要升维,变成1,表明该批次图片有1个
img=torch.unsqueeze(img,dim=0)
# 读取预测结果和真实分类的映射
json_path='./class_indices.json'
json_file=open(json_path,'r')
# 加载成字典 0:'A',1:'B',2:'C'
class_indict=json.load(json_file)
# 创建网络
model=resnet34(num_classes=5).to(device)
# 加载模型训练好的参数
weitcht_path='./resNet34.pth'
model.load_state_dict(torch.load(weitcht_path,map_location=device))
# 开启验证模式
model.eval()
# 不需要求导
with torch.no_grad():
    # 每个数据对应输出,(1,5)维度,将其降维,直接是(5,)
    output=torch.squeeze(model(img.to(device))).cpu()
    # 如果是预测,完全可以用touch.max,返回最大值索引,但是下面为了输出预测的概率,就要将其标准化,概率和为1
    # 按道理说应该是dim=1,每行的所有列,但是现在不是二维,所以要用0
    predict=torch.softmax(output,dim=0)
    # 返回最大值索引,dim=0和上面的同理
    predict_cla=torch.argmax(predict,dim=0).item()
print_res = "class: {}   prob: {:.3}".format(class_indict[str(predict_cla)],
                                                 predict[predict_cla].numpy())
print(print_res)


目录
相关文章
|
5天前
|
Java Linux API
统计android设备的网络数据使用量
统计android设备的网络数据使用量
14 0
|
6天前
|
安全 算法 网络安全
网络安全与信息安全:保护数据,从了解漏洞到强化加密
【5月更文挑战第6天】随着数字化时代的到来,网络安全和信息安全已成为维护个人隐私和企业资产的重要组成部分。本文将深入探讨网络安全的漏洞、加密技术的最新进展以及提升安全意识的重要性。通过对这些关键领域的分析,读者将获得如何有效防御网络威胁和保护敏感信息的知识。
|
2天前
|
Windows
LabVIEW通过网络传输数据
LabVIEW通过网络传输数据
|
4天前
|
安全 算法 网络安全
网络安全与信息安全:保护您的数据和隐私
【5月更文挑战第8天】随着互联网的普及和技术的快速发展,网络安全和信息安全已经成为我们日常生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术和安全意识等方面的知识,帮助您更好地保护自己的数据和隐私。
|
5天前
|
安全 网络协议 网络安全
网络安全与信息安全:保护你的数据,确保你的安全
【5月更文挑战第7天】在数字化的世界中,网络安全和信息安全是至关重要的。本文将深入探讨网络安全漏洞、加密技术以及安全意识等方面,帮助读者了解如何保护自己的数据和确保自己的网络安全。
|
6天前
|
机器学习/深度学习 监控 数据可视化
R语言SOM神经网络聚类、多层感知机MLP、PCA主成分分析可视化银行客户信用数据实例2
R语言SOM神经网络聚类、多层感知机MLP、PCA主成分分析可视化银行客户信用数据实例
|
6天前
|
机器学习/深度学习 数据可视化 算法
R语言SOM神经网络聚类、多层感知机MLP、PCA主成分分析可视化银行客户信用数据实例1
R语言SOM神经网络聚类、多层感知机MLP、PCA主成分分析可视化银行客户信用数据实例
|
6天前
|
机器学习/深度学习 数据可视化 算法
SPSS Modeler决策树和神经网络模型对淘宝店铺服装销量数据预测可视化|数据分享
SPSS Modeler决策树和神经网络模型对淘宝店铺服装销量数据预测可视化|数据分享
|
6天前
|
机器学习/深度学习 数据可视化 数据挖掘
R语言软件对房屋价格预测:回归、LASSO、决策树、随机森林、GBM、神经网络和SVM可视化|数据分享
R语言软件对房屋价格预测:回归、LASSO、决策树、随机森林、GBM、神经网络和SVM可视化|数据分享
|
6天前
|
监控 安全 网络安全
网络安全与信息安全:保护数据的重要性与方法
网络安全和信息安全是当今社会中不可或缺的话题。本文旨在探讨网络安全漏洞、加密技术和安全意识等方面的知识,以帮助读者更好地理解如何保护个人和机构的数据安全。
14 1