在使用backward()之前,默认为None,使用之后累加grad

1.创建可求导的tensor

import torch
x = torch.randn(3,4,requires_grad=True)
# x = torch.randn(3,4)
# x.requires_grad=True

2.可grad的tensor计算得来的tensor也可grad

import torch
x = torch.randn(3,4,requires_grad=True)
b = torch.randn(3,4,requires_grad=True)
y = x + b
z = y.sum()
x.requires_grad, b.requires_grad, y.requires_grad, z.requires_grad
z.backward()
x.grad, b.grad, y.grad, z.grad

3.多次求导,grad会累加
所以在实际中要每次迭代清空grad

import torch
x = torch.randn(3,4,requires_grad=True)
b = torch.randn(3,4,requires_grad=True)
y = x + b
z = y.sum()
x.requires_grad, b.requires_grad, y.requires_grad, z.requires_grad
z.backward(retain_graph=True)
x.grad, b.grad, y.grad, z.grad
-------------------------------
(tensor([[1., 1., 1., 1.],[1., 1., 1., 1.],[1., 1., 1., 1.]]), tensor([[1., 1., 1., 1.],[1., 1., 1., 1.],[1., 1., 1., 1.]]), None, None)
-------------------------------
z.backward(retain_graph=True)
x.grad, b.grad, y.grad, z.grad
--------------------------------
(tensor([[2., 2., 2., 2.],[2., 2., 2., 2.],[2., 2., 2., 2.]]), tensor([[2., 2., 2., 2.],[2., 2., 2., 2.],[2., 2., 2., 2.]]), None, None)
---------------------------------

参考:
https://pytorch.org/docs/stable/autograd.html#torch.Tensor.grad

pytorch tensor 梯度相关推荐

  1. pytorch得到梯度计算结果

    借助pytorch可以很方便的计算梯度,但需要明确的是: 只有float类型的Tensor才可以 只有最后是一个标量才可以求导,就是最后的值只有大小,不能自带方向 文章目录 逐步计算梯度 完整代码 参 ...

  2. python numpy.arry, pytorch.Tensor及原生list相互转换

    文章目录 python numpy.arry, pytorch.Tensor及原生list相互转换 1 原生list转numpy list 2 numpy.array 转原生list 3 numpy. ...

  3. pytorch tensor求向量的模长

    想要求pytorch tensor中某个2048维度的向量的模长,可以先相乘,然后再用sum求和. 假设 v是一个2048维的向量,则可以利用一下两个语句求出模长的平方. sq = v * vsum_ ...

  4. PyTorch Tensor 的形状

    PyTorch Tensor 的形状 标量 (Scalar) 向量 (Vector) 矩阵 (Matrix) 图片展示 标量 (Scalar) 标量 (Scalar) 由一个值组成. (0维) # S ...

  5. Pytorch - 使用opencv-python解码视频文件并将视频帧转换为Pytorch tensor作为网络模型输入数据

    1 视频文件作为网络模型的输入数据 越来越多的神经网络模型开始以视频作为训练数据,比如基于视频数据的行为识别等等,这就需要我们将视频转换为可适用的张量,本文将以pytorch为例,展示一下视频数据转换 ...

  6. bert pytorch源码_【PyTorch】梯度爆炸、loss在反向传播变为nan

    点击上方"MLNLP",选择"星标"公众号 重磅干货,第一时间送达 作者丨CV路上一名研究僧 知乎专栏丨深度图像与视频增强 地址丨https://zhuanla ...

  7. pytorch的梯度计算以及backward方法

    基础知识 tensors: tensor在pytorch里面是一个n维数组.我们可以通过指定参数reuqires_grad=True来建立一个反向传播图,从而能够计算梯度.在pytorch中一般叫做d ...

  8. Pytorch(5)-梯度反向传播

    自动求梯度 1. 函数对自变量x求梯度--ax^2+b 2. 网络对参数w求梯度- loss(w,x) 3. 自动求梯度的底层支持--torch.autograd 3.1 Variable 3.1.1 ...

  9. pytorch tensor查找0_Pytorch简单教程

    2019 年,ML 框架之争只剩两个实力玩家:PyTorch 和 TensorFlow.研究者大批涌向 PyTorch,而业界的首选仍然是 TensorFlow. Pytorch和TensorFlow ...

最新文章

  1. 派生类构造函数和析构函数的执行顺序
  2. php生成vcf,[宜配屋]听图阁 - PHP实现生成vcf vcard文件功能类定义与使用方法详解【附demo源码下载】 原创...
  3. 最近一次.Dragon4444勒索病毒的成功解密过程
  4. 使用wireshark以及filddler配合抓去手机端的TCP以及HTTP请求
  5. java调接口传值_关于调用第三方接口时传递参数是File类型的解决方式
  6. 贝塞尔修正_贝塞尔修正背后的推理:n-1
  7. 超励志!从中专生到教授,他32岁成为国家杰青!
  8. 中国聚合混凝土行业市场供需与战略研究报告
  9. Spring Boot + thymeleaf 后台与页面(二)
  10. vs201检查更新不成功_Kubernetes玩转Pod滚动更新123
  11. VisualStudio开发工具中的C#主流控件属性及事件汇总(菜鸟必备)
  12. 编程大佬都推荐的Python编辑器
  13. MySQL曹操外卖项目--数据库设计
  14. 易基因 | 表观技术:单细胞及微量细胞全基因组重亚硫酸盐甲基化测序(scWGBS)
  15. Matlab-syms用法
  16. 智能ALMP封装推拉力测试机 剪切力强度测试仪器主要功能介绍
  17. 前端开发Vue项目实战:电商后台管理系统(八)------ 订单管理模块
  18. AndroidManifest基本定义
  19. 中国广电剑未出鞘,但中国联通和中国电信已吓得瑟瑟发抖
  20. javascript--DOM事件流

热门文章

  1. 诗歌rails之获取本地ip地址
  2. Python之进程+线程+协程(生产者消费者模型)
  3. mysql删除选课为空的学生_MySQL一些简单的操作题
  4. 报告PPT|Python网络程序设计教学要点与案例分享(含音频)
  5. Python实现图像空域随机水印加入与提取
  6. python备份发包脚本_用Python写脚本,实现完全备份和增量备份的示例
  7. hadoop hive集群_失眠大数据专家,基于Hadoop不同版本搭建hive集群(附配置文件)
  8. 手写 Object.create
  9. 使用计算机的方法视频,怎么直接把电脑的视频共享给电视?巧用当贝市场,四种方法供你选...
  10. pytorch dataset读取数据流程_10条PyTorch避坑指南