解答:pytorch 通过索引赋值后 梯度还能正常反向传播吗

2023-10-27

先上测试代码

if __name__=='__main__':
    # scene_graph_token()
    tensor1 = torch.rand(4,4)
    #tensor1.requires_grad_(True)
    tensor2 = torch.rand(4)
    tensor2.requires_grad_(True)
    opt=torch.optim.Adam([tensor2],lr=0.1)

    for i in range(50):
        tensor1[2,:]=tensor2
        tensor3=tensor1*2
        tensor3=tensor3.view(-1)

        sum=torch.sum(tensor3,dim=0)
        print(sum.data)
        print(tensor2.data)
        opt.zero_grad()
        sum.backward(retain_graph=True)
        opt.step()
    pass

解释 :

tensor2是有一行4个数

然后赋值给tensor1的第三行

tensor1简单做了个乘2的运算

然后把tensor1所有数加起来,我们的目标是让这个 和 变小

上结果!

这里输出不太好看,大家凑活看,反正这个和是变小了。

同时输出tensor2,它的值也是在变化

结论:

梯度能正常反向传播

 

所以大家不必担心梯度问题,pytorch已经为大家封装好了

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

解答:pytorch 通过索引赋值后 梯度还能正常反向传播吗 的相关文章

随机推荐

  • Hadoop3.x 之 MapReduce 框架原理(月薪过万 第九章下)

    Hadoop3 x 之 MapReduce 框架原理 一 MapTask工作机制 二 ReduceTask 工作机制 三 ReduceTask 并行度决定机制 四 MapTask 源码解析流程 五 ReduceTask 源码解析流程 六 R
  • c++在多个源文件中定义同一个类

    在自己写代码练习时 创建好多个源文件 然后有些文件又定义了相同的类 比如源文件1 class B public B B 源文件2 class B public B new A B 然后在运行源文件2的时候一直都没有进入到构造函数里面去 最后
  • matlab函数之reshape()

    reshape 重构数组 功能 B reshape A sz 按矢量sz定义的维度 包括行数 列数 维数 重构矩阵A来得到矩阵B 实现原理 先将矩阵A先排列成一列 结果感受就是按列优先排列 再按照矢量sz定义大小的行数切割 结构及实例 A
  • 区间图着色问题

    这是算法导论贪心算法一章的一个习题 题目描述 假定有一组活动 我们需要将它们安排到一些教室 任意活动都可以在任意教室进行 我们希望使用最少的教室完成所有的活动 设计一个高效的贪心算法求每个活动应该在哪个教室进行 这个问题称为区间图着色问题
  • 在Linux应用程序中打印函数调用栈

    在Linux中打印函数调用栈 要求 在Linux系统的应用程序中写一个函数print stackframe 用于获取当前位置的函数调用栈信息 方法 execinfo h库下的函数backtrace可以得到当前线程的函数调用栈指针和调用栈深度
  • ODOO15固定资产管理系统解决方案(原创)

    有些公司固定资产众多 而且涉及到在建工程的费用归集及在建工程结转固定资产等复杂情况 使用ODOO系统如何来解决这个客户需要解决的问题呢 我们根据自身的实施经验 分享ODOO固定资产的管理解决方案 1 资产分类设置 资产众多 需要进行类别设置
  • 谷歌云GCP

    感谢公司赞助了Google Cloud Platform GCP Coursera课程 https www coursera org 包括云基础设施 应用开发 数据湖和数据仓库相关知识 其中谷歌云的实验操作平台是 https www qwi
  • 数据库系统丨关系代数运算总结

    文章目录 1 需要记忆的符号 2 集合运算 1 并运算 2 差运算 3 交运算 4 广义笛卡尔积 3 关系运算 1 选择 Selection 2 投影 Projection 3 连接 Join 4 除 Division 1 需要记忆的符号
  • VOT 数据集 groundtruth 8个维度 转成 4个维度的方法

    VOT数据集由于加入了带旋转角度的boundingbox 使得其groundtruth的维度达到了8个 如下 8个维度就代表boundingbox的4个点 比如VOT16中 bag数据序列的groundtruth第一行 334 02 128
  • Casual inference 综述框架

    A survey on causal inference 因果推理综述 A Survey on Causal Inference 一文的总结和梳理 因果推断理论解读 Rubin因果模型的三个假设 基础理论 理论框架 名词解释 individ
  • 如何使用IDEA正确的创建一个Web项目

    我是学习java的新人休元 第一次使用CSDN写博客请大家多多关照 写的第一篇博客就是如何使用IDEA正确的创建一个Web项目 刚刚使用IDEA不到两个星期 有很多地方不熟练 如果有错误请大家指出来 操作系统 win10 编译环境 IDEA
  • 2023年第1季社区Task挑战赛开启,等你来战!

    社区Task挑战赛是面向社区开发者开展的代码或教程征集活动 该挑战赛为社区中热爱FISCO BCOS及周边组件的开发者提供了探索区块链技术 挑战技术难题的舞台 该挑战赛去年在社区成功举办了3季 共吸引了数百名开发者报名 前3季都有哪些有趣的
  • 从源码看 AlertDialog.getButton(DialogInterface.BUTTON_POSITIVE) 为什么是 null

    我们在使用 AlertDialog 的时候 如果想改变 POSITIVE BUTTON 或者 NEGATIVE BUTTON 的字体颜色 大小时 可能会注意到 AlertDialog getButton DialogInterface BU
  • 长城网络靶场第三题

    关卡描述 1 oa服务器的内网ip是多少 先进行ip统计 开始逐渐查看前面几个ip 基本上都是b s 所以大概率是http 过滤一下ip 第一个ip好像和oa没啥关系 第二个ip一点开就是 oa 应该就是他了 关卡描述 2 黑客的攻击ip是
  • w7系统如何关闭高级文字服务器,Win7系统怎么取消切换大小写时出现提示?

    Win7系统用户在工作中使用键盘切换大小写输入时 总会弹跳出系统的提示窗口 很多用户觉得非常烦 那么Win7系统应该怎么取消切换大小写时出现的提示呢 接下来下面请看Win7系统切换大小写时出现的提示的具体解决方法 解决方法 1 首先 在桌面
  • 在Vue中获取DOM元素的实际宽高

    最近使用 D3 js 开发可视化图表 因为移动端做了 rem 适配 所以需要动态计算获取图表容器的宽高 其中涉及到一些原生DOM API的使用 避免遗忘这里总结一下 一 获取元素 在 Vue 中可以使用 ref 来获取一个真实的 DOM 元
  • 电商峰值系统架构设计--转载

    1 1 系统架构设计目录 摘要 双11来临之际 程序员 以 电商峰值系统架构设计 为主题 力邀京东 当当 小米 1号店 海尔商城 唯品会 蘑菇街 麦包包等电商企业 及商派 基调网络等服务公司 分享电商峰值系统架构设计的最佳技术实践 自200
  • SSH_Unable to negotiate with ... port ..: nomatching host host key type found. Their offer:ssh-rsa

    终端远程登录ssh时 提示如下错误 Unable to negotiate with 192 168 1 228 port 22 nomatching host host key type found Their offer ssh rsa
  • 常见的损失函数(loss function)总结

    点击上方 小白学视觉 选择加 星标 或 置顶 重磅干货 第一时间送达 导读 本文总结了常见的八种损失函数的优缺点 包括 0 1损失函数 绝对值损失函数 log对数损失函数 平方损失函数 指数损失函数 Hinge 损失函数 感知损失函数 交叉
  • 解答:pytorch 通过索引赋值后 梯度还能正常反向传播吗

    先上测试代码 if name main scene graph token tensor1 torch rand 4 4 tensor1 requires grad True tensor2 torch rand 4 tensor2 req