向量和矩阵的backward

这篇具有很好参考价值的文章主要介绍了向量和矩阵的backward。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

向量:

有y=w*x,取w、x分别如下且y得:

x1 = tc.tensor([[5],[6]], dtype=tc.float32, requires_grad=True)
w = tc.tensor([[10,20],[30,40]], dtype=tc.float32, requires_grad=True)
y1 = tc.mm(w, x1)
y1: tensor([[170.],
        [390.]], grad_fn=<MmBackward0>)

经过backward后取x1.grad为:

y1.backward(tc.tensor([[4],[5]]))
x1_Grad: tensor([[190.],
        [280.]])

这是由于,将得到的乘以backward中的参数张量[[4],[5]]得此结果。

矩阵

只需把m*n维的矩阵x看成m个向量分别作为输入即可。
例如:
 

x = tc.tensor([[1,2],[3,4]], dtype=tc.float32, requires_grad=True)
w = tc.tensor([[10,20],[30,40]], dtype=tc.float32, requires_grad=True)
y = tc.mm(w, x)
y: tensor([[ 70., 100.],
        [150., 220.]], grad_fn=<MmBackward0>)

backward一下

y.backward(tc.tensor([[1,2],[2,3]]))

结果是和backward中的参数张量[[1,2],[2,3]]相乘得到的

x_Grad: tensor([[ 70., 110.],
        [100., 160.]])

注意

矩阵A和矩阵B相乘后对A求偏导得B,对B求偏导得。并且y的backward中的参数要和y的维数相同,并且某个变量的梯度是要和自身维数相同的。文章来源地址https://www.toymoban.com/news/detail-415393.html

到了这里,关于向量和矩阵的backward的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • Tensor Core加速CUDA矩阵计算

    Tensor Core加速CUDA矩阵计算

    C++ warp矩阵运算利用Tensor Cores来加速 D=A*B+C 形式的矩阵问题。 计算能力 7.0 或更高版本的设备的混合精度浮点数据支持这些操作。 这需要一个warp中所有线程的合作。 此外,仅当条件在整个 warp 中的计算结果相同时,才允许在条件代码中执行这些操作,否则代码执行可能会挂

    2024年02月08日
    浏览(20)
  • Pytorch入门:Tensor加减乘除矩阵运算

    若张量维数大于2,则对最后两维进行matmul。进行此运算的要求是张量a与b除最后两维外的其他维必须一致:

    2024年02月12日
    浏览(13)
  • Pytorch:将列表数据转不同数据类型的Tensor矩阵

    Pytorch:将列表数据转不同数据类型的Tensor矩阵

            本文主要介绍pytorch中不同数据类型的Tensor矩阵,例如:float32、float64、int32、int64。并将创建好的列表数据转成不同数据类型的Tensor矩阵,最后进行:行复制的操作。 一、列表转Tensor,复制行和列向量 二、转Tensor矩阵中元素的数据类型 三、求个赞就行    

    2024年02月11日
    浏览(16)
  • pytorch 根据bool矩阵取出tensor中对应位置元素

    1. bool矩阵当做索引(类型是:BoolTensor) 结果为一维向量(因为bool矩阵二维的,根据bool矩阵中True对应位置,把tensor数据中相应位置中的值取出来,组成一个新的一维tensor向量) 输出结果: 2. 一维bool向量当做索引(类型是:BoolTensor) 第一个例子:结果为一维向量(target是

    2023年04月10日
    浏览(8)
  • pytorch一行实现:计算同一tensor矩阵内每行之间的余弦相似度

    pytorch一行实现:计算同一tensor矩阵内每行之间的余弦相似度

      余弦相似度的公式如下所示:   可以使用torch自带的余弦相似度计算函数(下面三种用哪一个都可以,效果是一样的):   该函数原文档在:torch官方文档    cosine_similarity中的参数要两个tensor数据,而我们的需求是求一个tensor内的行与行之间的余弦相似度。很显然

    2023年04月08日
    浏览(8)
  • 【数理知识】协方差,随机变量的的协方差,随机变量分别是单个数字和向量时的协方差

    【数理知识】协方差,随机变量的的协方差,随机变量分别是单个数字和向量时的协方差

    序号 内容 1 【数理知识】自由度 degree of freedom 及自由度的计算方法 2 【数理知识】刚体 rigid body 及刚体的运动 3 【数理知识】刚体基本运动,平动,转动 4 【数理知识】向量数乘,内积,外积,matlab代码实现 5 【数理知识】协方差,随机变量的的协方差,随机变量分别是单

    2024年02月14日
    浏览(10)
  • 小杨想要构造一个 N*N 的 X 字矩阵(N为奇数),这个矩阵的两条对角线都是半角加号 + ,其余都是半角减号 - 。例如,一个 5*5 的 X 字矩阵如下:+---+-+-+---+---

    #includebits/stdc++.h using namespace std; int main(){      int n,w=0,m=1;      cinn;      for ( int i=1;i=n;i++){          for ( int j=1;j=n;j++){              if (j==m||j==n-w){                  cout \\\"+\\\" ;              } else {                  cout \\\"-\\\" ;              }

    2024年02月05日
    浏览(8)
  • 深入理解三维旋转矩阵——R的行和列分别有什么含义

    深入理解三维旋转矩阵——R的行和列分别有什么含义

      三维旋转矩阵描述的是在三维空间中物体的旋转关系,我们难以直观地从旋转矩阵上看出旋转的具体情况。但是,它可以由欧拉角变换而来,也就是可以视为绕着xyz三个轴分别进行旋转后结果的叠加,是一系列三角函数相乘的结果。比如,通常我们所使用的rpy角:   关

    2024年02月02日
    浏览(11)
  • R语言矩阵、向量操作(矩阵乘法,向量内积、外积(叉乘),矩阵转置,矩阵的逆)

    创建两个四维矩阵 A 与 B,A 按列填充,B 按行填充 : 创建两个 n 维向量 x 和 y : 使用 t(矩阵、向量名) 即可: 输出如下: 使用 %*% 符号即可: 输出如下: 在R语言中,两个矩阵、向量的内积并不只是简单的 * 号就完事了,而是有以下两种求法: 或者 其结果如下: (注意区分

    2024年02月12日
    浏览(12)
  • 输入一个n×n的矩阵,分别计算该矩阵主对角线元素与副对角线元素之和。

    输入格式: 输入包含n + 1行: 第一行为一个正整数n(1 = n = 10)。 第二行到第n + 1行,每行有n个整数,邻近两数之间用一个空格隔开。 输出格式: 两数之间用一个空格隔开。 输入样例: 4 2 3 4 1 5 6 2 1 7 1 8 3 1 6 1 1 输出样例: 17 5

    2024年02月11日
    浏览(14)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包