基于Netron库的PyTorch 2.0模型可视化

【图书推荐】《从零开始大模型开发与微调:基于PyTorch与ChatGLM》_《从零开始大模型开发与微调:基于pytorch与chatglm》-CSDN博客

前面章节带领读者完成了基于PyTorch 2.0的MNIST模型的设计,并基于此完成了MNIST手写体数字的识别。此时可能有读者对我们自己设计的模型结构感到好奇,如果能够可视化地显示模型结构就更好了。

读者可以自行在百度搜索Netron。Netron是一个深度学习模型可视化库,支持可视化地表示PyTorch 2.0的模型存档文件。因此,我们可以把3.1.2节中PyTorch的模型结构保存为文件,并通过Netron进行可视化展示。保存模型的代码如下:

class NeuralNetwork(torch.nn.Module):def __init__(self):super(NeuralNetwork, self).__init__()self.flatten = torch.nn.Flatten()self.linear_relu_stack = torch.nn.Sequential(torch.nn.Linear(28*28,312),torch.nn.ReLU(),torch.nn.Linear(312, 256),torch.nn.ReLU(),torch.nn.Linear(256, 10))def forward(self, input):x = self.flatten(input)logits = self.linear_relu_stack(x)return logits#进行模型的保存
model = NeuralNetwork()
torch.save(model, './model.pth')		#将模型保存为pth文件

建议读者从GitHub上下载Netron,其主页提供了基于不同版本的安装方式,如图3-6所示。

读者可以依照操作系统的不同下载对应的文件,在这里安装的是基于Windows的.exe文件,安装后是一个图形界面,直接在界面上单击file操作符号打开我们刚才保存的.pth文件,显示结果如图3-7所示。

可以看到,此时我们定义的模型结构被可视化地展示出来了,每个模块的输入输出维度在图3-7上都展示出来了,单击深色部分可以看到每个模块更详细的说明,如图3-8所示。

本文节选自《从零开始大模型开发与微调:基于PyTorch与ChatGLM》,获得出版社和作者授权发布。

《从零开始大模型开发与微调:基于PyTorch与ChatGLM(人工智能技术丛书)》(王晓华)【摘要 书评 试读】- 京东图书 (jd.com)

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

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

相关文章

C语言结构体包含结构体

C语言结构体可以包含另一个结构体; 下面通过一个例子看一下; struct Date {int day;int month;int year; };struct Person {char *name;struct Date birthday; }; ...... void CTestView::OnDraw(CDC* pDC) {CTestDoc* pDoc GetDocument();ASSERT_VAL…

备战秋招day3

碎碎念: 今天有个面试,学校这里还有实训。 今日任务:算法+mysql知识点补充 算法 24. 两两交换链表中的节点 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* List…

MySQL-索引:聚集索引、覆盖索引、组合索引、前缀索引、唯一索引

文章目录 MySQL-索引:聚集索引、覆盖索引、组合索引、唯一索引1、聚集索引2、覆盖索引3、组合索引4、唯一索引 MySQL-索引:聚集索引、覆盖索引、组合索引、唯一索引 1、聚集索引 在数据库中,聚集索引决定了表数据行的物理存储顺序。在InnoD…

C语言 | Leetcode C语言题解之第189题轮转数组

题目&#xff1a; 题解&#xff1a; void swap(int* a, int* b) {int t *a;*a *b, *b t; }void reverse(int* nums, int start, int end) {while (start < end) {swap(&nums[start], &nums[end]);start 1;end - 1;} }void rotate(int* nums, int numsSize, int…

国内邮件推送如何避免拦截?内容优化技巧?

国内邮件推送的平台怎么选择&#xff1f;如何提高邮件推送效果&#xff1f; 邮件营销是企业与客户沟通的重要方式&#xff0c;但在国内邮件推送过程中&#xff0c;邮件被拦截的问题屡见不鲜。为了确保邮件能够顺利送达目标用户&#xff0c;AokSend将探讨一些有效的策略&#x…

【Android】实现图片和视频混合轮播(无限循环、视频自动播放)

目录 前言一、实现效果二、具体实现1. 导入依赖2. 布局3. Banner基础配置4. Banner无限循环机制5. 轮播适配器6. 视频播放处理7. 完整源码 总结 前言 我们日常的需求基本上都是图片的轮播&#xff0c;而在一些特殊需求&#xff0c;例如用于展览的的数据大屏&#xff0c;又想展…

跟着DW学习大语言模型-什么是知识库,如何构建知识库

建立一个高效的知识库对于个人和组织来说非常重要。无论是为了个人学习和成长&#xff0c;还是为了组织的持续创新和发展&#xff0c;一个完善的知识管理系统都是不可或缺的。那么&#xff0c;如何建立一个高效的知识库呢&#xff1f; 在建立知识库之前&#xff0c;首先需要确定…

第3章 小功能大用处-事务与Lua

为了保证多条命令组合的原子性&#xff0c;Redis提供了简单的事务功能以及集成Lua脚本来解决这个问题。 首先简单介绍Redis中事务的使用方法以及它的局限性&#xff0c;之后重点介绍Lua语言的基本使用方法&#xff0c;以及如何将Redis和Lua脚本进行集成&#xff0c;最后给出Red…

项目实训-vue(十三)

项目实训-vue&#xff08;十三&#xff09; 文章目录 项目实训-vue&#xff08;十三&#xff09;1.概述2.处理按钮 1.概述 本篇博客将记录我在图片上传页面中的工作。 2.处理按钮 实现了图片的上传之后&#xff0c;还需要设置具体的上传按钮。 这段代码使用 Element UI 的 …

Linux之磁盘管理

最近工作中&#xff0c;进行需要进行项目部署、排查问题。而磁盘又是其中绕不开的一个环节。今天就来整理一下磁盘的操作。 1、查看磁盘使用情况 df -h文件系统 容量 已用 可用 已用% 挂载点 devtmpfs 2.0G 0 2.0G 0% /dev tmpfs …

Spring学习02-[Spring容器核心技术IOC学习]

Spring容器核心技术IOC学习 什么是bean?如何配置bean?Component方式bean配合配置类的方式import导入方式 什么是bean? 被Spring管理的对象就是bean,和普通对象的区别就是里面bean对象里面的属性也被注入了。 如何配置bean? Component方式、bean配合配置类的方式、import…

C语言 | Leetcode C语言题解之第190题颠倒二进制位

题目&#xff1a; 题解&#xff1a; const uint32_t M1 0x55555555; // 01010101010101010101010101010101 const uint32_t M2 0x33333333; // 00110011001100110011001100110011 const uint32_t M4 0x0f0f0f0f; // 00001111000011110000111100001111 const uint32_t M8…

【containerd】Containerd高阶命令行工具nerdctl

前言 对于习惯了使用docker cli的用户来说&#xff0c;containerd的命令行工具ctr使用起来不是很顺手&#xff0c;此时别慌&#xff0c;还有另外一个命令行工具项目nerdctl可供我们选择。 nerdctl是一个与docker cli风格兼容的containerd的cli工具。 nerdctl已经作为子项目加入…

【区分vue2和vue3下的element UI Statistic 统计数值组件,分别详细介绍属性,事件,方法如何使用,并举例】

Element UI 是一个为 Vue.js 设计的 UI 组件库&#xff0c;但截至当前&#xff08;2023年&#xff09;&#xff0c;Element UI 主要针对 Vue 2.x 进行了设计和开发&#xff0c;并没有官方的 Vue 3.x 版本。然而&#xff0c;Vue 3.x 带来了许多新的特性和改进&#xff0c;因此一…

es 更新索引mapping和setting

1.关闭索引 curl -X POST "localhost:9200/your_index_name/_close"2.修改setting 配置 无法更新一些默认数据,按照需求构建&#xff0c;我这边是构建增加了分词器 "settings": {"index": {"creation_date": "1718850346547…

秋招突击——6/24——复习{完全背包问题——买书,状态转换机——股票买卖V}——新作{两数相除,LRU缓存实现}

文章目录 引言复习完全背包问题——买书个人实现 状态转换机——股票买卖V个人实现参考实现 新作两数相除个人实现 新作LRU缓存实现个人实现unordered_map相关priority_queue相关 参考实现自己复现 总结 引言 今天知道拼多多挂掉了&#xff0c;难受&#xff0c;那实习就是颗粒无…

汪汪队短视频:成都柏煜文化传媒有限公司

汪汪队短视频&#xff1a;萌宠与冒险的交织乐章 在数字时代的浪潮中&#xff0c;短视频以其短小精悍、内容丰富的特点&#xff0c;迅速占领了人们的闲暇时光。而在这些琳琅满目的短视频中&#xff0c;有一类作品以其独特的魅力吸引了无数观众的目光&#xff0c;那就是以萌宠为…

【AI原理解析】—小型神经网络原理

目录 一、定义与特点 二、优化方法 三、性能评估 四、应用场景 五、工具与可视化 一、定义与特点 定义&#xff1a;微型神经网络&#xff08;轻量级神经网络&#xff09;是指那些需要参数数量较少、计算代价较小的神经网络模型。特点&#xff1a; 参数数量少&#xff1a;…

YOLOv8 目标检测程序的输出 (1, 84, 8400)的解释

YOLOv8 目标检测程序的输出 (1, 84, 8400)的解释 flyfish 完整代码请看 # 使用预处理后的图像数据进行推理 outputs session.run(None, {model_inputs[0].name: img_data})也就是这个outputs 输出结果代表什么 outputs session.run(None, {model_inputs[0].name: img_dat…

CSS3 多列布局

CSS3 多列布局 CSS3 多列布局是一种强大的布局技术,它允许开发者将内容分为多个列,类似于报纸或杂志的布局。这种布局方式不仅提高了页面设计的灵活性,还增强了用户阅读体验。本文将详细介绍 CSS3 多列布局的相关属性,并通过示例展示其应用。 多列布局的基本概念 在 CSS…