Pytorch中不会自动传播梯度的操作有哪些?

devtools/2024/10/20 18:59:13/

在 PyTorch 中,某些生成张量的操作本身不会创建与计算图相关联的梯度信息。这些操作通常用于初始化张量,并且默认情况下不需要进行梯度计算。以下是一些常见的不会自动传播梯度的张量生成操作:

  1. 数值初始化操作

    • torch.linspace(): 用于生成等差数列的张量。
    • torch.arange(): 类似于 Python 的 range(),用于生成指定范围内的序列。
    • torch.zeros(), torch.zeros_like(): 用于生成全 0 张量。
    • torch.ones(), torch.ones_like(): 用于生成全 1 张量。
    • torch.full(): 用于创建每个元素都是指定值的张量。
    • torch.empty(), torch.empty_like(): 用于创建未初始化的张量。
  2. 随机初始化操作

    • torch.rand(), torch.rand_like(): 用于生成 0 到 1 范围内服从均匀分布的随机数张量。
    • torch.randn(), torch.randn_like(): 用于生成均值为 0、标准差为 1 的正态分布的随机数张量。
    • torch.randint(), torch.randint_like(): 生成整数随机数张量。
  3. 创建单位矩阵

    • torch.eye(): 用于生成单位矩阵。

这些操作生成的张量默认情况下 requires_grad 属性是 False,因此即使在计算过程中这些张量的值被用作操作数,也不会在反向传播时计算其梯度。

如果需要将这些生成的张量用于需要梯度计算的操作时,需要手动设置 requires_grad=True,例如:

python">x = torch.linspace(0, 1, steps=10, requires_grad=True)

这样,x 在后续的操作中就会被包含在计算图中,从而能够计算梯度。
但是类似下面:

python">x = torch.linspace(-2, 2, 100, requires_grad=True) * torch.pi

是及其容易忽略的错误。


http://www.ppmy.cn/devtools/122205.html

相关文章

4. Getter和Setter注解与lombok

文章目录 1. 什么是Getter和Setter注解2. 什么是lombokjava自带的jar包 3. 从maven仓库里找lombok相关jar包4. 把jar包导入项目另一个jar包导入途径 5. 正式使用注解① 问题② 解决方案提示 6. 如果还想对某个成员变量添加限制怎么办7. 内容出处 1. 什么是Getter和Setter注解 官…

linux驱动开发之LED灯驱动(附驱动源码,适用于全志,瑞芯微等芯片)

最近学习linux驱动,前面讲述了字符型驱动开发的驱动编写框架以及具体步骤,而LED驱动是字符型驱动中最基础的,本次我们就来学习一下linux的LED灯驱动开发步骤,同时源码放出来供大家参考。 本次驱动开发适用于全志,瑞芯…

Spring Boot 快速入门教程

1. Spring Boot 简介 Spring Boot 是一个基于 Spring 框架的项目,它简化了基于 Spring 的 Java 应用程序的创建和部署。Spring Boot 通过提供一系列的“Starters”来简化 Maven 配置,同时使用约定大于配置的原则,让开发者能够以最少的配置启…

冯诺依曼体系|操作系统

目录 一、硬件:冯诺依曼体系 1.冯诺依曼体系结构 2.冯诺依曼体系结构组成 3.内存的重要性 (1)提升运行速度 (2)提升运行效率 二、软件:操作系统 1.什么是操作系统 (1)内部理…

Elasticsearch基础_5.ES聚合功能

文章目录 一、数据聚合1.1、桶聚合1.1.1、单维度桶聚合1.1.2、聚合结果排序1.1.3、限定聚合范围 1.2、Metric聚合 二、聚合总结 本文只记录ES聚合基本用法,后续有更复杂的需求可以查看相关书籍,如《Elasticsearch搜索引擎构建入门与实战》 一、数据聚合…

GO语言深度探索:并发编程与高性能网络服务器实践

GO语言深度探索:并发编程与高性能网络服务器实践 在当今快速发展的软件开发领域,Go语言(又称Golang)以其简洁的语法、强大的并发处理能力以及高效的编译执行速度,迅速成为构建高性能、高并发系统的首选语言之一。本文…

【预备理论知识——1】深度学习:概率论概述

简单地说,机器学习就是做出预测。 概率论 掷骰子 假设我们掷骰子,想知道看到1的几率有多大,而不是看到另一个数字。 如果骰子是公平的,那么所有六个结果{1,…, 6}都有相同的可能发生, 因此我们可以说 1 发生的概率为1…

【漏洞复现】VEXUS多语言货币交易所存在未授权访问漏洞

漏洞描述 java后端,非常完整的一套交易所,UI前端做的也很漂亮,新增了交易跟单功能,前端pc+wap都是uniapp纯源码,前端源码node_modules环境已经安装好了,拿去直接编译就可以. 后端 前端 免责声明 技术文章仅供参考,任何个人和组织使用网络应当遵守宪法法律,遵守公共…