pytorch 一个 Tensor的 is_leaf requires_grad 两个属性同时 为 True 才会保存 grad
根据下面的代码和输出,不难发现在 loss 执行完 backward 操作之后
只有那些 requires_grad 和 is_leaf 的属性同时为 True 的 Tensor 才会有 grad 属性。
不满足上面的条件也想要保存 grad,见这篇博文 Pytorch关于requires_grad_(True)的理解 。
而根据 这篇文章
Tesor 在下面几种情况下,才会是 leaf
# Creating the graph
x = torch.tensor([1.,2.,3.], requires_grad = True)
y = torch.tensor([4.,5.,6.], requires_grad = True)
z = x+y
loss = (z*z).sum()
loss.backward() #Computes the gradientprint("x requires_grad",x.requires_grad)
print('x is_leaf',x.is_leaf)
print('x grad_data',x.grad.data)print("\ny requires_grad",y.requires_grad)
print('y is_leaf',y.is_leaf)
print('y grad_data',y.grad.data) print("\nz requires_grad",z.requires_grad)
print('z is_leaf',z.is_leaf)print("\nloss requires_grad",loss.requires_grad)
print('loss is_leaf',loss.is_leaf)print('loss grad_data',loss.grad.data)
print('z grad_data',z.grad.data)
输出:
x requires_grad True
x is_leaf True
x grad_data tensor([10., 14., 18.])y requires_grad True
y is_leaf True
y grad_data tensor([10., 14., 18.])z requires_grad True
z is_leaf Falseloss requires_grad True
loss is_leaf FalseFile "xx.py", line 27, in <module>print('loss grad_data',loss.grad.data) #Prints '3' which is dz/dx
AttributeError: 'NoneType' object has no attribute 'data'z grad_data 也是一样的报错,就不贴上来了
pytorch 一个 Tensor的 is_leaf requires_grad 两个属性同时 为 True 才会保存 grad相关推荐
- 创建一个Rectangle类。 添加两个属性width、height,分别表示宽度和高度,添加计算矩形的周长和面积的方法。测试输出一个矩形的周长和面积。
[Java]创建一个Rectangle类 添加两个属性width.height,分别表示宽度和高度,添加计算矩形的周长和面积的方法.测试输出一个矩形的周长和面积. /*作者:龙蝶 *日期:2020年4 ...
- Java中实现根据一个List中的数据的两个属性相同划分为同一类
场景 有一个List,每一个元素是一个对象,根据每个对象的两个属性 是否相同划分为同一类,即两个属性都相同时才划为同一类. 并将同类中的num属性进行累加. 如图: 根据material_number ...
- 定义类MyProgram,包含两个属性:一个是private的整型属性data、一个是private的String类型属性str,重写toString,equals
题目: 定义一个类MyProgram,包含两个属性:一个是private的整型属性data.一个是private的String类型属性str,封装这两个属性的四个方法setData( )和getDat ...
- Pytorch——如何创建一个tensor与索引和切片(二)
1.两种常见的随机初始化 (1) rand函数 rander函数就是随机的使用0和1的均值分布来初始化,也就是说它从零和一的空间中随机的均匀的sample出来,这样数据就回均匀的分布在0和1之间. t ...
- 【pytorch】|tensor grad
计算图与动态图机制 计算图是用来描述运算的有向无环图.计算图有两个主要元素:结点(Node)和边(Edge).结点表示数据,如向量,矩阵,张量:边表示运算,如加减乘除卷积等. 下面用计算图表示:y = ...
- pytorch中tensor、backward一些总结
目录 说明 Tensor Tensor的创建 Tensor(张量)基本数据类型与常用属性 Tensor的自动微分 设置不可积分计算 pytorch 计算图 backward一些细节 该文章解决问题如下 ...
- PyTorch:tensor、torch.nn、autograd、loss等神经网络学习手册(持续更新)
PyTorch1:tensor2.torch.nn.autograd.loss等神经网络学习手册(持续更新) 链接:画图.读写图片 文章目录 一.tensor 二.完整训练过程:数据.模型.可学习参数 ...
- pytorch方法,Tensor及其基本操作_重点
由于之前的草稿都没了,现在只有重写-. 我好痛苦 本章只是对pytorch的常规操作进行一个总结,大家看过有脑子里有印象就好,知道有这么个东西,需要的时候可以再去详细的看,另外也还是需要在实战中多运用 ...
- pytorch学习笔记 1. pytorch基础 tensor运算
pytorch与tensorflow是两个近些年来使用最为广泛的机器学习模块.开个新坑记录博主学习pytorch模块的过程,不定期更新学习进程. 文章较为适合初学者,欢迎对代码和理解指点讨论,下面进入 ...
最新文章
- RHEL5.1单域主/从NIS服务器配置及测试
- sqlalchemy.orm 多条件查询更新
- maven 通用pom.xml
- 一步一步学Silverlight 2系列(34):使用Silverlight Streaming托管Silverlight应用程序_转载...
- asp.net ajax中文乱码的解决?2010-01-19 12:06
- mysql5.6 pid_MySQL5.6启动报错The server quit without updating PID file
- ionic checkbox 精简用法
- BugkuCTF web5
- 【编程珠玑】内联函数和宏
- 使用openssh的登录的三种方法
- Ajax Post请求实例
- python连接informix数据库
- android rom root权限,教你刷机包获取ROOT权限的方法
- js中的几种随机排序方案
- 【Flink】Flink 做检查点 报错 Checkpoint Coordinator is suspending.
- 基本的LC串联和并联振荡电路分析
- 自定义View实现雨点洒落效果
- 计算机与信息技术基础读书笔记,信息技术读书笔记
- ECharts地图,自定义map地图显示不同图标点,点击标点显示不同弹框
- Opencv人数统计 yolo kcf人头跟踪 人数统计 KCF目标跟踪 YOLO目标跟踪
热门文章
- react mvvm_SwiftUI与React式MVVM iOS架构
- web,java,poi导出excel
- 阅读《Detection of EEG-Based Eye-Blinks Using A Thresholding Algorithm》小结
- Are You Talking to Me? Reasoned Visual Dialog Generation through Adversarial Learning
- matlab 包含nan的行,matlab中去除含有NaN的行或者列
- 凯恩斯与艺术品投资的更大笨蛋理论
- AIX各项知识链接(IBM官网)
- 成年人必看的六个故事教你学会做人
- 香港四日,逛吃逛吃—16家地道美味全纪录+伴手礼推荐
- 讨论——如何避免在直通车中高展现底点击的现象