PyTorch自动梯度计算(注意点)

if params.grad is not None:

           params.grad.zero_()

我们实际的运算往往会涉及到若干个requires-grad为true的张量进行运算,在这种情况下,Pytorch会计算整个计算图上的损失的导数,并把这些结果累加到grad属性中。多次调用backward()会导致梯度的错误累积。如果要防止这个问题发生,我们需要在每次迭代的时候手动的把梯度置为零。

Demo的例子

import torch
t_c=torch.tensor([0.5,14.0,15.0,28.0,11.0,8.0,3.0,-4.0,6.0,13.0,21.0])
t_u=torch.tensor([35.7,55.9,58.2,81.9,56.3,48.9,33.9,21.8,48.4,60.4,68.4])
t_un=0.1*t_u
#定义模型
def model(t_u,w,b):
    return w*t_u+b
#定义损失函数
def loss_fn(t_p,t_c):
    squared_diffs=(t_p-t_c)**2
    return squared_diffs.mean()
#唯一改变
params=torch.tensor([1.0,0.0])
params.requires_grad=True
print(params)
#反向传播
loss= loss_fn(model(t_u,*params),t_c)
print(loss)
#对loss 进行反向传播
loss.backward()
#输出params的梯度看看
params.grad

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/283489.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【漏洞复现】CVE-2023-6848 kodbox远程命令执行

漏洞描述 kodbox 是一个网络文件管理器。它也是一个网页代码编辑器,允许您直接在网页浏览器中开发网站。您可以在基于 Linux、Windows 或 Mac 的平台上在线或本地运行 kodbox。唯一的要求是要有 PHP 5及以上。 kalcaddle kodbox 中发现漏洞,最高版本为 1.48。它已被宣布为关…

Chrome2023新版收藏栏UI改回旧版

版本 120.0.6099.109(正式版本)Chrome浏览器菜单新版、旧版的差异 想要将书签、功能内容改回旧版的朋友可以网址栏输入:「chrome://flags」,接着搜寻「Chrome Refresh 2023」。 最后将 Chrome Refresh 2023、Chrome Refresh 2023…

使用VBA快速统计词组词频(多单词组合)(2/2)

实例需求:产品清单如A列所示,现在如下统计多单词组合词组词频。 在上一篇博客中《使用VBA快速统计词组词频(多单词组合)(1/2)》讲解了如何实现双词的词频统计。 本文将讲解如何实现3词的词频统计,掌握实现方法之后&a…

【Go】基于GoFiber从零开始搭建一个GoWeb后台管理系统(四)用户管理、部门管理模块

第一篇:【Go】基于GoFiber从零开始搭建一个GoWeb后台管理系统(一)搭建项目 第二篇:【Go】基于GoFiber从零开始搭建一个GoWeb后台管理系统(二)日志输出中间件、校验token中间件、配置路由、基础工具函数。 …

【算法Hot100系列】无重复字符的最长子串

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

【C语言】基础刷题训练4(含全面分析和代码改进示例)

系列文章目录 提示:该系列文章暂未全部完成,暂时欠缺系列文章目录,见谅 基础刷题训练4(含全面分析和代码改进示例) 文章目录 系列文章目录前言题目链接(有需要的请自行链接做题)T1:思路1:思路2&…

【MySQL】:内置函数

内置函数 一.日期函数二.字符串函数三.数学函数和其他函数 一.日期函数 1.获得年月日 2.获取时分秒 3.获取时间戳 4.日期加日期 5.日期减日期 6.计算两个日期相差时间 二.字符串函数 1.获取编码 2.拼接字符串 3.判断子串 4.转大写 这些函数使用都非常简单,就不再举例…

初识迭代器(Iterator)——迭代器模式——迭代加深(后续更新...)

学习网页: Welcome to Python.orghttps://www.python.org/ 迭代器(Iterator) 迭代器是一个非常有用的Python特性,它允许我们遍历一个容器(如列表、元组、字典、集合等)的元素。迭代器提供了一种方法&…

设计模式——代理模式(结构型)

引言 代理模式是一种结构型设计模式, 让你能够提供对象的替代品或其占位符。 代理控制着对于原对象的访问, 并允许在将请求提交给对象前后进行一些处理。 问题 为什么要控制对于某个对象的访问呢? 举个例子: 有这样一个消耗大量…

格密码:离散高斯与子高斯分布

高斯分布我们都很熟悉,但在格密码中会用到一种特殊的高斯分布,将其取名离散高斯分布(discrete Gaussian)。 一. N维连续高斯分布 给定一个正整数n,代表维度。一个正实数,代表标准差(高斯分布的标准差决定着…

LeetCode刷题--- 找出所有子集的异或总和再求和

个人主页:元清加油_【C】,【C语言】,【数据结构与算法】-CSDN博客 个人专栏 力扣递归算法题 http://t.csdnimg.cn/yUl2I 【C】 http://t.csdnimg.cn/6AbpV 数据结构与算法 http://t.csdnimg.cn/hKh2l 前言:这个专栏主要讲述递归递归、搜…

【TB作品】STM32 PWM之实现呼吸灯,STM32F103RCT6,晨启

文章目录 完整工程参考资料实验过程 实验任务: 1:实现PWM呼吸灯,定时器产生PWM,控制实验板上的LED灯亮灭; 2:通过任意两个按键切换PWM呼吸灯输出到两个不同的LED灯,实现亮灭效果; 3&…