Pytorch框架学习笔记

news2024/9/20 16:37:05

官网- 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.coloradmin.cn/o/1366246.html

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

相关文章

如何用Chat分析本地化运维服务有哪些?

问CHAT:本地化运维服务有哪些? CHAT回复:本地化运维服务主要包括以下几大部分: 1. 系统监控和管理:密切关注系统的性能,实时发现并解决可能出现的问题,以确保服务的稳定和可用性。 2. 数据备份…

python 各级目录文件读取

目录结构 import pytestdef test_01():# 同级文件with open(1.txt, r, encodingutf-8) as file:content file.read()print(content)def test_02():# 同级目录的下的文件with open(rupfile/2.txt, r, encodingutf-8) as file:content file.read()print(content)def test_03():…

Python编程+copilot+代码补全+提高效率

Python编程copilot代码补全提高效率 copilot是由Github和OpenAI合作开发的一款AI编程工具,它可以根据自然语言或部分代码,自动给出合适的代码补全建议。copilot支持多种编程语言,包括Python,也可以在Pycharm等主流IDE中使用。本资…

Java学习苦旅(二十六)——反射,枚举和lamda表达式

本篇博客将讲解反射,枚举和lamda表达式。 文章目录 反射定义用途反射基本信息反射相关的类Class类Class类中相关的方法 反射示例反射的优缺点优点缺点 枚举背景及定义常用方法枚举优缺点优点缺点 Lambda表达式背景语法函数式接口定义基本使用 变量捕获Lambda在集合…

基于docker环境搭建Mysql主从

文章目录 Mysql主从搭建1.1 Master搭建1.2 Slave搭建1.3 主从复制 1.4 验证 Mysql主从搭建 ​ mysql主从复制的原理将主数据库的增删改查等操作记录到二进制日志文件中,从库接收主库日志文件,根据最后一次更新的 起始位置,同步复制到从数据…

简单的excel填充

简单的excel填充 先导入相关依赖 <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.16</version></dependency><dependency><groupId>org.apache.poi</groupId><…

UE5 使用代码开发UE设置,以及创建基于类的蓝图

此文章用于记录当前学习的重要的点。 基础设置 首先设置项目的偏好向&#xff0c;方便后续开发。 打开编辑器偏好设置 设置使用的代码编辑器 关闭实时代码编写功能。 关闭自动编译新添C类&#xff0c;我们直接在代码编辑器内编译 修改版权声明 修改打开资产时&#xff0…

【AI视野·今日Robot 机器人论文速览 第七十一期】Fri, 5 Jan 2024

AI视野今日CS.Robotics 机器人学论文速览 Fri, 5 Jan 2024 Totally 11 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Robotics Papers Machine Learning in Robotic Ultrasound Imaging: Challenges and Perspectives Authors Yuan Bi, Zhongliang Jiang, Felix D…

第2章 JavaScript基本语法

学习目标 了解什么是变量&#xff0c;能够说出变量的概念 掌握变量的命名规则&#xff0c;能够为变量命名 掌握变量的声明与赋值&#xff0c;能够声明变量并为其赋值 熟悉数据类型的分类&#xff0c;能够说出JavaScript中有哪些数据类型 掌握常用的基本数据类型&#xff0c…

Probabilistic Forecasting with Temporal Convolutional Neural Network

Abstract 我们提出了一种基于卷积神经网络&#xff08;CNN&#xff09;的概率预测框架&#xff0c;用于多个相关时间序列预测。该框架可用于估计参数和非参数设置下的概率密度。更具体地说&#xff0c;构建基于扩张因果卷积网络的堆叠残差块来捕获序列的时间依赖性。与表示学习…

用免费敏捷工具Leangoo领歌做敏捷需求管理

传统的瀑布工作模式使用详细的需求说明书来表达需求&#xff0c;需求人员负责做需求调研&#xff0c;根据调研情况编制详细的需求说明书&#xff0c;进行需求评审&#xff0c;评审之后签字确认交给研发团队设计开发。在这样的环境下&#xff0c;需求文档是信息传递的主体&#…

【C语言】一种状态超时阻塞循环查询的办法

【C语言】一种状态超时阻塞循环查询的办法 文章目录 【C语言】一种状态超时阻塞循环查询的办法1.方法12.方法21.方法1 static void wait_notify_async(notify_type_t notify_type) {static rt_tick_t exit_tick;exit_tick = rt_time_get_msec();lb_int32 notify_success = RT_F…

计算机网络实验(二):Wireshark网络协议分析

一、实验名称&#xff1a;Wireshark网络协议分析 二、实验原理 HTTP协议分析 1.超文本传输协议&#xff08;Hypertext Transfer Protocol, HTTP&#xff09;是万维网&#xff08;World Wide Web&#xff09;的传输机制&#xff0c;允许浏览器通过连接Web服务器浏览网页。目…

深入理解奥运会大数据架构方案

背景 某网作为某电视台在互联网上的大型门户入口&#xff0c;某一年成为某奥运会中国大陆地区的特权转播商&#xff0c;独家全程直播了某奥运会全部的赛事&#xff0c;积累了庞大稳定的用户群&#xff0c;这些用户在使用各类服务过程中产生了大量数据&#xff0c;对这些海量数…

CTF-PWN-沙箱逃脱-【seccomp和prtcl-2】

文章目录 沙箱逃脱prtcl题HITCON CTF 2017 Quals Impeccable Artifactflag文件对应prctl函数检查源码思路exp 沙箱逃脱prtcl题 HITCON CTF 2017 Quals Impeccable Artifact flag文件 此时的flag文件在本文件夹建一个即可 此时的我设置的flag为 对应prctl函数 第一条是禁止…

20240107查看Android11下移远的4G模块EC20在Firefly的AIO-3399J开发板跑通时的相关服务

20240107查看Android11下移远的4G模块EC20在Firefly的AIO-3399J开发板跑通时的相关服务 2024/1/7 11:24 缘起&#xff1a;友善之臂的SDK&#xff1a;rk3399-android-11-r20211216.tar.xz可以跑通EC20&#xff0c;但是Toybrick的不行&#xff01; 同样是Andrid11&#xff0c;因此…

Vue3-37-路由-组件内的路由守卫 onBeforeRouteLeave 和 onBeforeRouteUpdate

简介 组件内的路由守卫&#xff0c;实际上就是两个 API 方法。 他们与普通的守卫不同的是 &#xff1a; 他们是写在组件内的&#xff0c;在组件中监听路由的变化&#xff0c;不是全局的&#xff0c;比较灵活。 以下是两个 API 的功能说明&#xff1a;onBeforeRouteLeave() : 守…

centos7下升级openssh9.4p1及openssl1.1.1v版本

背景&#xff1a;客户服务器扫描出一些漏洞&#xff0c;发现和版本有关&#xff0c;漏洞最高的版本是9.3p2&#xff0c;所以我们安装一个openssh9.4p1版本及openssl1.1.1v版本 虽然我们进行了镜像备份&#xff0c;为了安全先安装telnet以防止升级失败无法通过ssh连接服务器 一…

LINE网页版使用方法(内含LINE网页版特点总结)

如果想要在电脑上使用LINE&#xff0c;但是又觉得下载客户端很累赘的话&#xff0c;LINE网页版是你最好的选择。但是LINE网页版相对于其他平台来说使用方式比较少。所以今天就来讲讲&#xff0c;我们有什么方式可以在电脑中使用LINE。 LINE网页版使用方法 1.需要使用Chrome浏览…

详细探讨mfc140.dll丢失的解决方法,并比较各种方法的优劣

mfc140.dll是Microsoft Foundation Class (MFC) 库中一个重要的DLL文件&#xff0c;它包含了多个执行程序使用的函数和资源。这个库通常用于开发Windows操作系统上的应用程序。但有时会发生mfc140.dll缺失或损坏的错误&#xff0c;导致一些依赖它的应用程序无法运行。今天的这篇…