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,一经查实,立即删除!

相关文章

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

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

图像预处理——transforms

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

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

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

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、烧录验…

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

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

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

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

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

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

02 Deep learning algorithm

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

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

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

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

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

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;专业的软件外包开发…

mariadb配置慢sql查询

Mariadb和Mysql配置相同 这里配置的事mariadb 修改配置文件 vi /etc/my.cnf.d/server.cnf[mysqld] slow_query_logon slow_query_log_file/data/mysql_data/slow_query_log.log long_query_time2slow_query_logon 开启慢sql查询slow_query_log_file/data/mysql_data/slow_que…

kubectl 源码分析

Cobra库 k8s各组件的cli部分都使用Cobra库实现&#xff0c;Cobra 中文文档 - 掘金 (juejin.cn)&#xff0c;获取方式如下&#xff1a; go get -u github.com/spf13/cobralatest cobra库中的Command结构体的字段&#xff0c;用于定义命令行工具的行为和选项。它们的作用如下&…

56K star!一键拥有跨平台 ChatGPT 应用:ChatGPT-Next-Web

前言 现在围绕 openai 的客户端层出不穷&#xff0c;各路开发大神可以说是各出绝招&#xff0c;我也试用过几个国内外的不同客户端。 今天我们推荐的开源项目是目前我用过最好的ChatGPT应用&#xff0c;在GitHub超过56K Star的开源项目&#xff1a;ChatGPT-Next-Web。 ChatGP…

一创聚宽停止服务,散户可以选择它!

第一创业和聚宽停止合作&#xff01;还有什么量化平台可选&#xff1f; 先了解背景&#xff1a; 从2023年9月25日起&#xff0c;一创聚宽的量化交易平台暂停开通交易权限&#xff0c;到2023年12月29日&#xff0c;一创聚宽量化交易平台将停止提供所有服务。这一消息对于之前使…

Python基础入门第七课笔记(自定义函数 define)

函数 函数必须先定义再调用 函数必须先定义再调用 函数必须先定义再调用 定义函数&#xff1a; def 函数名&#xff08;形参&#xff09;&#xff1a; 代码1 代码2 ………. 调用函数&#xff1a; 函数名&#xff08;实参&#xff09; 形参&…

Spring MVC响应结合RESTful风格开发,打造具有强大功能和良好体验的Web应用!

响应与Rest风格 1.11.1.1 环境准备步骤1:设置返回页面步骤2:启动程序测试 1.1.2 返回文本数据步骤1:设置返回文本内容步骤2:启动程序测试 1.1.3 响应JSON数据响应POJO对象响应POJO集合对象 知识点1&#xff1a;ResponseBody 2&#xff0c;Rest风格2.1 REST简介2.2 RESTful入门案…

技术概述:ARMv8体系结构

John Goodacre, Director Program Management ARM Processor Division, November 2011 背景&#xff1a;ARM体系结构 从ARM精简指令集体系结构提出到现在已经有20多年了&#xff1b;ARMv7系列处理器是在ARMv4基础上设计的&#xff0c;随着ARMv7系列处理器大量应用&#xff0…