Pytorch框架学习笔记

官网- PyTorch

Tensor

构造随机初始化矩阵

x=torch.rand(5,3)

构造全0矩阵,数据类型为long

x=torch.zeros(5,3,dtype=torch.long)

获取维度信息

x.size()

tensor加法

torch.add(x,y)== x+y ==y.add_(x)

改变tensor的大小和形状

获取value

x.item(

自动微分

  1. tensor的属性.requires_grad设置为true的话,则会跟踪所有的操作,计算完成后可以调用.backward自动计算所有的梯度;
  2. grad_fn 是 PyTorch 中的一个属性,用于跟踪张量的计算历史,特别是在反向传播(backpropagation)过程中。每个张量都可以有一个 grad_fn 属性,指示了创建该张量的操作,以及如何计算该张量的梯度。

神经网络

  1. 可以通过torch.nn进行创建;
  2. 一个nn.module包括了层和一个forward(input)方法,同时会返回一个output输出;
  3. 一个典型的神经网络训练包含

1:定义一个包含可训练参数的神经网络;

2:迭代整个输入;

3:通过网络对输入数据进行处理

4:计算与真实结果的损失;

5:反向传播梯度到神经网络的参数;

6:更新网络的参数,常用的::weight = weight - learning_rate *gradient

  1. 池化操作通常在模型的前向传播(forward pass)中执行,而不是在模型的初始化(__init__)方法中执行的主要原因是,池化操作是一种对输入数据的特定处理,它需要输入数据的具体值来进行操作。池化操作是基于输入数据的内容来执行的,而不是基于模型参数的初始化;

损失函数

1)损失函数需要两个参数:模型输出目标,通过计算损失函数的值来评估输出距离目标有多远;

2)grad变量会累积梯度;

3)每次反向传播更新梯度我们都需要把原来的梯度清空;

4)SGD

5)criterion用于定义损失函数

图像分类器

1)optimizer.step()用于更新神经网络的模型参数,通常在模型的反向传播后被调用,用于执行参数的梯度下降步骤;

2)查看gpu个数torch.cuda.device_count()

3)数据并行自动拆分了你的数据并且将任务单发送到多个 GPU 上。当每一个模型都完成自己的任务

之后,DataParallel 收集并且合并这些结果,然后再返回给你

数据加载与处理

  1. torchvision.transforms.Compose可以组合一些处理操作;
  2. torch.utils.data.DataLoader是一个很好的迭代器;
  3. torchcision提供了大部分图像集和图像变换

4)如果这个 tensor x requires_grad=True ,那么反向传播之后 x.grad 将会是另一个张量,其为x关于某个标量值的梯

度。

迁移学习

  1. 越是底层的网络层他学习到的东西就越细节,越是细节,他的通用度就越高,因此我们可以重用这些细节的部分,进而产生了迁移学习,将底层学习到的参数固定住,只需要改变上几层的参数即可,因为上层的参数较为具体是不可能适配所有的任务的

2)要冻结除最后一层之外的所有网络。通过设置 requires_grad == Falsebackward() 来冻结参数,这样在反向传播backward()的时候他们的梯度就不会被计算

3)计算转发:在神经网络中向前传递输入数据以获得模型输出的过程;

seq2seq

保存和加载模型

1)torch.save :将序列化对象保存到磁盘。此函数使用Python的 pickle 模块进行序列化。使

用此函数可以保存如模型、tensor、字典等各种对象。

2)torch.load :使用pickle的 unpickling 功能将pickle对象文件反序列化到内存。此功能还可

以有助于设备加载数据

3)torch.nn.Module.load_state_dict :使用反序列化函数 state_dict 来加载模型的参数字典。

4)state_dict将每一层映射到其参数张量,只有可以学习参数的层(例如卷积,线性层)才有stste_dict这一项;

5)打印模型的额状态字典

# 打印模型的状态字典

print("Model's state_dict:")

for param_tensor in model.state_dict():

print(param_tensor, "\t", model.state_dict()[param_tensor].size())

导出为onnx模型

1)在 PyTorch 中通过跟踪工作导出模型。要导出模型,请调用 torch.onnx._export() 函数。这将执

行模型,记录运算符用于计算输出的轨迹。 因为 _export 运行模型,我们需要提供输入张量 x

这个张量的值并不重要; 它可以是图像或随机张量,只要它大小是正确的。

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

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

相关文章

C语言-蓝桥杯2023年第十四届省赛真题-砍树

题目描述 给定一棵由 n 个结点组成的树以及 m 个不重复的无序数对 (a1, b1), (a2, b2), . . . , (am, bm),其中 ai 互不相同,bi 互不相同,ai ≠ bj(1 ≤ i, j ≤ m)。 小明想知道是否能够选择一条树上的边砍断,使得对于每个 (a…

CPU平台做视频智能分析,Lnton视频分析平台不仅支持流分析,同时也支持图片分析了

LntonAIServer最新v1.0.09版本支持图片分析了,经过几个月的研发,在原有的视频流分析的基础上,我们终于支持大家都非常期待的图片分析功能了,图片分析的功能加上,能有利于很多场景的展开,比如在烟火、明厨亮…

Coppeliasim--V-rep

官网 学习网站 英文手册 中文手册 coppeliasim ubuntu下载和配置 Windows的可以直接在官网下载,安装教程简单。

图像预处理——transforms

一、transforms 运行机制 torchvision是PyTorch的一个扩展库,提供了许多计算机视觉相关的工具和功能。下面是关于torchvision中常用模块的介绍: torchvision.transforms:提供了一系列常用的图像预处理方法,用于对图像进行变换、…

基于springboot+vue网吧管理系统(程序+数据库+文档)

🍅点赞收藏关注 → 私信领取本源代码、数据库🍅 本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目希望你能有所收获,少走一些弯路。🍅关注我不迷路🍅摘 要 随着信息技术和网络技术的…

Java equals 和 == 有什么区别?

equals 和 的区别如下: 功能不同: “ ” 用于比较两个对象的引用是否相等。它比较两个对象的存储地址,即判断两个对象是否是同一个对象。(简单理解为:比的地址值) “equals” 用于比较两个对象的内容是否…

STM32CubeMX教程19 I2C - MPU6050驱动

目录 1、准备材料 2、实验目标 3、实验流程 3.0、前提知识 3.1、CubeMX相关配置 3.1.1、时钟树配置 3.1.2、外设参数配置 3.1.3、外设中断配置 3.2、生成代码 3.2.1、外设初始化调用流程 3.2.2、外设中断调用流程 3.2.3、添加其他必要代码 4、常用函数 5、烧录验…

AtCoder ABC189

这套题值得写一写&#xff0c;从C题开始就很有技巧 C - Mandarin Orange 给定一个数组 a 1 . . . . . a n a_1.....a_n a1​.....an​ 对于每个 a i a_i ai​&#xff0c;找到其左边第一个比他小的位置 l i , a l i < a i l_i,a_{l_i}<a_i li​,ali​​<ai​&#x…

【前端】JavaScript的基本用法

JavaScript的基本用法 1.如何使用Js脚本 1).引入Js文件 在头部标签中导入脚本标签并指明脚本文件路径 <head><script src="XXX.js"></script></head> 1. 2).标签中使用 <body><script >javascript 语句</script></b…

医院信息系统集成平台—后台运维管理系统

随着信息化建设的推进,为了让凝聚了巨大人力物力投入的信息基础设施发挥出其效益,保障整个信息系统的平稳可靠运行,需要有一个可从整体上对包括服务器、网络,存储,安全等组件在内的IT基础设施环境进行综合管理的平台,并能够提供业务系统运行异常的实时告警和进行图形化问…

【Leetcode 209】长度最小的子数组 —— 滑动窗口|双指针

209. 长度最小的子数组 给定一个含有n个正整数的数组和一个正整数target。 找出该数组中满足其总和大于等于target的长度最小的 连续子数组 [numsl, numsl1, ..., numsr-1, numsr]&#xff0c;并返回其长度。如果不存在符合条件的子数组&#xff0c;返回0。 示例 1&#xff…

可狱可囚的爬虫系列课程 09:通过 API 接口抓取数据

前面已经讲解过 Requests 结合 BeautifulSoup4 库抓取数据&#xff0c;这种方式在抓取数据时还是比较方便快捷的&#xff0c;但是这并不意味着所有的网站都适合这种方式&#xff0c;并且这也不是抓取数据的最快方式&#xff0c;今天我们来讲一种更快速的获取数据的方式&#xf…

02 Deep learning algorithm

Neural Networks target&#xff1a; inference&#xff08;prediction&#xff09;training my own modelpractical advice for building machine learning systemdecision Tress application: speech&#xff08;语音识别&#xff09; ----> images(计算机视觉)—> t…

无心剑七绝《译园杏花村》

七绝译园杏花村 鼓诗捣译醉乾坤 字句推敲忘晓昏 技艺精微佳作舞 春秋共赏杏花村 2024年1月5日 平水韵十三元平韵 回首译诗路&#xff0c;转眼二十四载&#xff0c;译诗两三千首&#xff0c;感慨良多。一路走来&#xff0c;结识了不少译友诗朋&#xff0c;切磋的快乐&#x…

HarmonyOS@Styles装饰器:定义组件重用样式

Styles装饰器&#xff1a;定义组件重用样式 的样式都需要单独设置&#xff0c;在开发过程中会出现大量代码在进行重复样式设置&#xff0c;虽然可以复制粘贴&#xff0c;但为了代码简洁性和后续方便维护&#xff0c;我们推出了可以提炼公共样式进行复用的装饰器Styles。 Styl…

C#和C++存储 和 解析 bin 文件

C 解析 bin 文件 // C 解析 bin 文件 #include <stdio.h>int main() {FILE *file; // 定义文件指针file fopen("example.bin", "rb"); // 打开二进制文件&#xff08;只读模式&#xff09;if (file NULL) {printf("无法打开文件\n");re…

【揭秘】单例模式DCL导致无法访问对象?

前两天&#xff0c;在审查团队成员的代码时&#xff0c;我发现了一个错误的单例模式写法。 在Java中&#xff0c;单例模式是一种非常常见的设计模式&#xff0c;用于确保一个类只有一个实例&#xff0c;并提供一个全局访问点来获取该实例&#xff0c;但是&#xff0c;如果不正…

vue项目报错RangeError: Maximum call stack size exceeded

我的代码–> <script> import groupSettings from ./groupSetting.vue export default {name: groupSettings,components: {groupSettings}, </script>答应我&#xff0c;你的子组件引入名称一定不能和name一样&#xff01;&#xff01;&#xff01;

运算放大器(六):I-V 转换

1、跨阻放大器 放大器类型是根据其输入-输出信号的类型定义。假设放大器增益 &#xff08;X&#xff1a;输入&#xff0c;Y&#xff1a;输出&#xff09;。在电学范畴&#xff0c;由于用电压或电流表征一个信号&#xff0c;当输入信号为电流&#xff0c;输出信号为电压时&#…

数字孪生在虚拟现实(VR)中的应用

数字孪生在虚拟现实&#xff08;VR&#xff09;中的应用为用户提供了更深入、沉浸式的体验&#xff0c;同时通过数字孪生技术模拟真实世界的物理实体。以下是数字孪生在VR中的一些应用&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发…