当前位置: 首页 > news >正文

Pytorch搭建AlexNet 预测实现

1.导包

import torch
import matplotlib.pyplot as plt
import json
from model import AlexNet
from PIL import Image
from torchvision import transforms

2.数据预处理

data_transform = transforms.Compose([transforms.Resize((224, 224)),  # 将图片重新裁剪transforms.ToTensor(),  # 转化为tensortransforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))])  # 标准化数据

 3.加载测试图片

# load image
img = Image.open("1.jpeg")  # 网上随便下载,放到好找的路径下
plt.imshow(img)   # 直接载入图像
img = data_transform(img)  在预处理过程中吧channel提到前面
img = torch.unsqueeze(img, dim=0)  # 添加batch维度

4.读取分类文件

# read class_indent
try:# 读取保存在json文件中索引对应的类别名称json_file = open('./class_indices,json', 'r')class_indict = json.load(json_file)  # 将json文件解码成字典格式
except Exception as e:print(e)exit(-1)

5.初始化网络

output = torch.squeeze(model(img)):先将图片通过正向传播得到输出,再把输出的batch压缩

predict = torch.softmax(output, dim=0):通过softmax得到一个概率分布

predict_cla = torch.argmax(predict).numpy():找到概率最大处所对应的索引值

print将类别名称和预测概率输出

# create model
model = AlexNet(num_classes=5)
model_weight_path = "./AlexNet.pth"
model.load_state_dict(torch.load(model_weight_path))  # 载入网络模型
model.eval()  # 关闭dropout
with torch.no_grad():output = torch.squeeze(model(img))predict = torch.softmax(output, dim=0)predict_cla = torch.argmax(predict).numpy()
print(class_indict[str(predict_cla)], predict[predict_cla].item())
plt.show()

 6.预测结果

容易把玫瑰识别成郁金香,把蒲公英识别成向日葵,郁金香,向日葵,小雏菊可以很好的识别出来,模型的准确率还是有点低。大家自己尝试测试一下吧哈哈。

 PyTorch搭建AlexNet网络合集:
PyTorch搭建AlexNet网络模型-CSDN博客

PyTorch搭建AlexNet训练集-CSDN博客

Pytorch搭建AlexNet 预测实现-CSDN博客

相关文章:

  • 分布式调用与高并发处理(二)| Dubbo
  • 单片机FLASH深度解析和编程实践(上)
  • PHP异世界云商系统开源源码
  • linux中tar归档与(zip,gzip,bzip格式)压缩和解压
  • Rust 语言的 for 循环用法
  • qt vs 编程 字符编码 程序从源码到编译到显示过程中存在的字符编码及隐藏的字符编码转换
  • Vue.js+SpringBoot开发天沐瑜伽馆管理系统
  • FFmpeg查看所有支持的编码/解码器/封装/解封装/媒体格式/滤镜
  • 耳机壳UV树脂制作私模定制耳塞需要哪些工具和材料呢?
  • 基于CNN多阶段图像超分+去噪(超级简单版)
  • 【NLP】如何实现快速加载gensim word2vec的预训练的词向量模型
  • 3.14-嵌入式软件实习生-面试记录
  • c 语言中指针注意事项
  • 【Miniconda】Linux系统中 .condarc 配置文件的位置一般在哪里
  • C++实验 面向对象编程
  • [rust! #004] [译] Rust 的内置 Traits, 使用场景, 方式, 和原因
  • 11111111
  • 230. Kth Smallest Element in a BST
  • Android 架构优化~MVP 架构改造
  • Apache Zeppelin在Apache Trafodion上的可视化
  • CSS 三角实现
  • ECMAScript入门(七)--Module语法
  • Electron入门介绍
  • JavaWeb(学习笔记二)
  • jquery cookie
  • Linux Process Manage
  • node.js
  • Node项目之评分系统(二)- 数据库设计
  • 动态魔术使用DBMS_SQL
  • 给自己的博客网站加上酷炫的初音未来音乐游戏?
  • 聊聊sentinel的DegradeSlot
  • 每天一个设计模式之命令模式
  • 前端每日实战:70# 视频演示如何用纯 CSS 创作一只徘徊的果冻怪兽
  • 前端面试题总结
  • 浅谈Golang中select的用法
  • 区块链分支循环
  • 使用parted解决大于2T的磁盘分区
  • 小程序 setData 学问多
  • 一起来学SpringBoot | 第三篇:SpringBoot日志配置
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • ionic异常记录
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • #162 (Div. 2)
  • #NOIP 2014# day.1 生活大爆炸版 石头剪刀布
  • #前后端分离# 头条发布系统
  • $HTTP_POST_VARS['']和$_POST['']的区别
  • (1)常见O(n^2)排序算法解析
  • (2021|NIPS,扩散,无条件分数估计,条件分数估计)无分类器引导扩散
  • (AtCoder Beginner Contest 340) -- F - S = 1 -- 题解
  • (LeetCode C++)盛最多水的容器
  • (超详细)语音信号处理之特征提取
  • (附源码)计算机毕业设计ssm高校《大学语文》课程作业在线管理系统
  • (论文阅读30/100)Convolutional Pose Machines
  • (免费领源码)python#django#mysql公交线路查询系统85021- 计算机毕业设计项目选题推荐
  • (四) Graphivz 颜色选择