PyTorch——应用一个已训练好的图片分类网络——AlexNet

news2025/1/13 17:50:17

1.识别一个图像主体的预训练网络

        ImageNet数据集是由一个Stanford大学维护的包含1400多万幅图像的非常大的数据集,所有的图像都用来自WordNet数据集的名词层次结构标记,而WordNet数据集又是一个大型的英语词汇数据库。

1.1获取一个预先训练好的网络用于图像识别

from torchvision import models

 可以看到很多实际的模型

1.2AlexNet

与先进的深度网络相比,AlexNet是一个非常小的模型,但是,它可以让我们初步学习神经网络处理计算机视觉任务的例子。

我们首先创建一个AlexNet对象,接下来利用resnet101来初始化一个具有101层的卷积神经网络,下载需要一定的时间,resnet101有4450万个参数需要自动优化。

 再次运行resnet来查看这些层的形式

我们可以像调用函数一样调用resnet变量,将图片作为输入。在此之前需要将我们输入的图片进行预处理使其大小正确、颜色处在相同的数值范围。TorchVision模块提供了转换的操作,允许我们快速的定义基本的预处理管道。

from torchvision import transforms
preprocess = transforms.Compose([
    transforms.Resize(256),
    transforms.CenterCrop(224),
    transforms.ToTensor(),
    transforms.Normalize(
        mean = [0.485, 0.456, 0.406],
        std = [0.229, 0.224, 0.225]
    )])

接下来我们导入图片

from PIL import Image
img = Image.open("bobby.jpg")
img

 

 也可以使用img.show()使用一个窗口来进行查看

接下来通过预处理管道传递图像,按照网络预期的方式对输入的张量进行重塑、裁剪和归一化处理

img_t = preprocess(img)
import torch
batch_t = torch.unsqueeze(img_t, 0)

接下来运行模型。首先将网络设置为eval模式,这种过程被称之为推理。如果不这样做的话,那么一些预先训练过的模型,如批归一化和Dropout将不会产生有意义的答案。

torch.set_printoptions(precision=4,sci_mode=False)
out = resnet(batch_t)
out

 加载标签文件,并进行匹配:

with open('imagenet_classes.txt') as f:
    labels = [line.strip() for line in f.readlines()]

_, index = torch.max(out, 1)

接下来输出结果和置信度,以及前五个比较大的预测结果:

percentage = torch.nn.functional.softmax(out, dim=1)[0] * 100
labels[index[0]], percentage[index[0]].item()
_,indices = torch.sort(out, descending=True)
[(labels[idx], percentage[idx].item()) for idx in indices[0][:5]]

可以看到,预测结果为一只金毛猎犬。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/110189.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【矩阵论】7.范数理论——基本概念——矩阵范数生成向量范数谱范不等式

7.1.3 矩阵范数产生向量范数 CnnC^{n\times n}Cnn 上任一矩阵范数 ∥∙∥\Vert \bullet\Vert∥∙∥ 都产生一个向量范数 φ(X)∥X∥V\varphi(X)\Vert X\Vert_Vφ(X)∥X∥V​ 矩阵范数与向量范数的相容性:φ(Ax)≤∥A∥φ(x)\varphi(Ax)\le \Vert A\Vert\varphi(x)φ…

蓝牙耳机什么牌子好?音质好、配置高的蓝牙耳机分享

​经常听到很多网友在讨论哪些蓝牙耳机好用,什么蓝牙耳机的配置高......选购蓝牙耳机无非就是音质、蓝牙技术、续航、佩戴体验等各方面条件,还有哪位朋友不知道该如何选购蓝牙耳机的?根据我对蓝牙耳机的了解,从网上整理了好几款蓝…

【关于eps8266自动重启 Soft WDT reset】

【关于eps8266自动重启 Soft WDT reset】1. 前言2. 分析问题2.1 长时间没有喂狗2.2 delayMicroseconds 函数触发3. 解决问题3.1 解决长时间没有喂狗3.2 解决delayMicroseconds 函数触发5. 小结1. 前言 最近使用esp8266进行远程遥控时, 但是在驱动舵机servo库的过程中出现了esp…

第二证券|两大板块掀涨停潮,有个股猛拉20cm!这只港股复牌一度暴跌

A股商场周五上午窄幅震动,上证指数微涨0.09点,核算机等板块领涨。 新股体现持续分解,4只今日上市的新股中,两只科创板新股上涨,两只北交所新股则破发。 港股全体小幅调整,全体动摇不算大,但仍…

【推荐】智慧农业解决方案资料合集30篇

智慧农业 是农业中的智慧经济,智慧经济形态在农业中的具体表现。智慧农业是智慧经济重要的组成部分;对于发展中国家而言,智慧农业是智慧经济主要的组成部分,是发展中国家消除贫困、实现后发优势、经济发展后来居上、实现赶超战略的…

16含风光水的虚拟电厂与配电公司协调调度模型(场景削减MATLAB程序)

参考文献 含风光水的虚拟电厂与配电公司协调调度模型——董文略(复现场景削减部分) 主要内容 代码主要做的是风电、光伏以及电价场景不确定性模拟,首先由一组确定性的方案,生成50种光伏场景,为了避免大规模光伏场景…

小结 | 支持向量机 (SVM)

一.基本原理 SVM是一种二分类模型 基本思想:在特征空间中寻找间隔最大的分离超平面使数据得到高效的二分类,具体来讲,有三种情况(不加核函数的话就是线性模型,加了之后才会升级为一个非线性模型) 当训练…

MybatisPlus详解 | DQLDML快速开发... | 系统性学习 | 无知的我费曼笔记

无知的我正在复盘MybatisPlus,顺便上传笔记。。。 下图是我总结的 MP 知识的初级思维导图,后续会不断补充 文章目录1 MyBatisPlus入门案例与简介1.1 入门案例回顾SpringBoot整合Mybatis的开发过程:步骤1:创建数据库及表步骤2:创建SpringBoot工程步骤…

二苯并环辛炔-聚乙二醇-生物素DBCO-PEG-Biotin简介 DBCO-PEG-Biotin衍生物可以在没有金属催化剂(铜离子)作用下发生点击化学反应

中文名:二苯并环辛炔-聚乙二醇-生物素,生物素-聚乙二醇环辛炔 英文名:DBCO-PEG-Biotin,Biotin-PEG-DBCO 溶剂:溶于大部分有机溶剂,如:DCM、DMF、DMSO、THF等等,在水中有很好的溶解性…

变分自编码器VAE的数学原理

变分自编码器(VAE)是一种应用广泛的无监督学习方法,它的应用包括图像生成、表示学习和降维等。虽然在网络架构上经常与Auto-Encoder联系在一起,但VAE的理论基础和数学公式是截然不同的。本文将讨论是什么让VAE如此不同,并解释VAE如何连接“变…

【JVS低代码】一分钟学会如何快速创建应用

应用中心功能介绍 在JVS角色中有“应用管理员”的角色,如果赋予该角色,则用户为应用管理员,应用管理员有进入应用配置中心的权限。 创建空白应用: 从模板创建应用: 应用中心入口 具备应用管理员权限的用户&#xff…

嵌入式软件开发为什么需要DevOps?

DevOps提出至今已逾十年,作为热门概念,DevOps近年来频频出现于各大技术社区和媒体文章中,备受行业大咖追捧。作为新一代持续集成/持续开发(CI/CD)的方法论,DevOps正被快速引入嵌入式软件开发领域中。 为什…

【C++】类和对象(C++门槛)

唯有奋力奔跑,才能方得始终。 文章目录一、struct > class(类 方法/成员函数 属性/成员变量)1.自定义类型 struct 和 class 的区别2.类放在内存中的什么存储区?3.类中函数的两种定义方式3.1 声明和定义分离(增强代码可读性,…

docker 搭建 Nuget 服务器,CentOS,宝塔面板

docker 搭建 Nuget 服务器,CentOS,宝塔面板创建容器挂载目录给目录指定写入权限创建并运行 Nuget 服务创建Nuget包项目属性修改包版本号预生成事件执行重新生成手动上传vs菜单命令上传 记得上传在前修改版本号添加外部工具添加自定义命令项目文件夹下面新建 push.cm…

stable diffuison论文阅读

论文链接:High-Resolution Image Synthesis with Latent Diffusion Models 文章目录摘要引言普及高分辨率图像合成向潜空间出发相关工作图像合成的生成模型两阶段法图像合成方法感知图像压缩隐空间扩散模型扩散模型隐空间表征的生成模型条件机制实验感知压缩权衡基于…

【发表案例】计算机科学类SCI,仅1个月零6天录用,涵盖软件、信息、数据云计算、网络、建模等研究方向

【期刊简介】IF:0.5-1.0,JCR4区,中科院4区 【版面情况】SCI 在检,正刊 【征稿领域】计算机科学和控制系统相关问题的广泛领域,包括:软硬件工程;管理系统工程;信息系统和数据库;嵌入…

GPS(rinex格式)数据解析详细解读

RINEX格式现如今已成为GPS测量应用中的标准数据格式,目前应用最为广泛、最普遍的是RINEX格式的第2个版本,该版本能够用于包括静态和动态GPS测量在内的不同观测模式数据。在该版本中定义了6种不同类型的数据文件,分别用于存放不同类型的数据&a…

【经典设计】构建业务架构的3大视图

​ 在软件设计过程中,架构设计、功能设计和数据设计是三个不同层次的设计工作。而业务架构是系统整体规划中重要的基础工作,通常用业务架构图来表达业务架构。 业务架构定义了企业的治理结构、业务能力、业务流程、业务数据。业务能力说明企业做什么&a…

I/O指令和I/O地址译码

目录 掌握 I/O指令和I/O地址译码 独立编址(标准的I/O寻址方式) 8086/8088采用 特点 统一编址(存储器映像I/O寻址方式又称存储器对应I/O寻址方式) 特点 优点 缺点 输入输出指令 输入指令 输出指令 I/O接口的端口地址译…

rtt 线程管理

1.线程管理的定义 在日常生活中,我们要完成一个大任务,一般会将它分解成多个简单、容易解决的小问题,小问题逐个被解决,大问题也就随之解决了。在多线程操作系统中,也同样需要开发人员把一个复杂的应用分解成多个小的、…