记录一下,避免后面踩坑

单步调了半小时,幸好这个问题出现很频繁
发现是函数与导函数定义域问题。。。

sqrt(x) 函数的定义域为 [0, 无穷大)
sqrt(x) 的导函数的定义域 却是 (0, 无穷大)

这些函数定义域跟导函数的定义域不一样,正向传播可以得到正常结果,但是一旦backward就会得到Nan。。。

问题重现

import torch
a = torch.zeros(1)
a.requireds_grad = True
b = torch.sqrt(a)
b.backward()
print(a.grad)
# 得到nan

如何解决
让输入的值符合sqrt的导函数定义域就可以解决该问题了。举个例子:设 x 的定义域为 [0, 无穷大) ,给 x 加个很小的数,例如1e-8,使其输入值的定义域略微往右偏移,就可以避开 0 这个未定义值了;y = sqrt(x + 1e-8)

pytorch 中 torch.sqrt 的坑相关推荐

  1. Pytorch中torch.nn.Softmax的dim参数含义

    自己搞了一晚上终于搞明白了,下文说的很透彻,做个记录,方便以后翻阅 Pytorch中torch.nn.Softmax的dim参数含义

  2. PyTorch 中 torch.optim优化器的使用

    一.优化器基本使用方法 建立优化器实例 循环: 清空梯度 向前传播 计算Loss 反向传播 更新参数 示例: from torch import optim input = ..... optimiz ...

  3. pytorch中torch.optim的介绍

    pytorch中torch.optim的介绍 这是torch自带的一个优化器,里面自带了求导,更新等操作.开门见山直接讲怎么使用: 常用的引入: import torch.optim as optim ...

  4. PyTorch中torch.norm函数详解

    torch.norm() 是 PyTorch 中的一个函数,用于计算输入张量沿指定维度的范数.具体而言,当给定一个输入张量 x 和一个整数 p 时,torch.norm(x, p) 将返回输入张量 x ...

  5. Pytorch中, torch.einsum详解。

    爱因斯坦简记法:是一种由爱因斯坦提出的,对向量.矩阵.张量的求和运算的求和简记法. 在该简记法当中,省略掉的部分是:1)求和符号与2)求和号的下标 省略规则为:默认成对出现的下标(如下例1中的i和例2 ...

  6. pytorch 中 torch.optim.Adam 方法的使用和参数的解释

    class torch.optim.Adam(params, lr=0.001, betas=(0.9, 0.999), eps=1e-08, weight_decay=0)[source] 实现Ad ...

  7. pytorch中torch.isnan()和torch.isfinite()

    今天看代码看到的这两个函数,不多数废话,直接上Demo: 1.先来研究torch.isfinite() import torch num = torch.tensor(1) # 数字1 res = t ...

  8. 【Torch API】pytorch 中torch.ones_like和torch.zeros_like函数详解

    torch.ones_like函数和torch.zeros_like函数的基本功能是根据给定张量,生成与其形状相同的全1张量或全0张量,示例如下: input = torch.rand(2, 3) p ...

  9. pytorch中torch.nn.utils.rnn相关sequence的pad和pack操作

    目录 一.pad_sequence 二.pack_padded_sequence 三.pad_packed_sequence 四.pack_sequence 自然语言处理任务中,模型的输入一般都是变长 ...

  10. Pytorch中torch.unsqueeze()和torch.squeeze()函数解析

    一. torch.squeeze()函数解析 1. 官网链接 torch.squeeze(),如下图所示: 2. torch.squeeze()函数解析 torch.squeeze(input, di ...

最新文章

  1. AtomicInteger源码分析——基于CAS的乐观锁实现
  2. K8s 从懵圈到熟练-集群伸缩原理
  3. Android 动画之ScaleAnimation应用详解
  4. python实现dns欺骗_DNS欺骗攻击
  5. 粗糙表面的微表面模型——Physically Based Material
  6. pytorch已经安装成功了为什么不能使用import_使用auto keras的过程
  7. 的基本操作_Linux 基本操作命令总结
  8. hibernate之初学复合主键
  9. CenOS6 nginx+pxe+tftpd+samba/nfs+dhcpd 无盘安装windows  linux
  10. UNIX系统编程小结(三)----进程相关
  11. Futter基础第6篇: 实现网格布局【GridView、GridView.count、GridView.builder】
  12. KEPServerEX V6轻松连接Wonderware InTouch
  13. (附源码)计算机毕业设计ssm基于JAVA宠物店管理系统
  14. chemdraw如何改中文_教你如何快速自定义ChemDraw默认设置
  15. 星号下三角形python答案_Python利用for循环打印星号三角形的案例
  16. Windows 和 Linux 系统查询 IP 地址命令
  17. LDA主题模型的原理及使用教程
  18. 每日新闻丨雷军:金山办公分拆上市是既定战略;我国计划2022年前后建成可载3人的空间站...
  19. Python地学分析 — GDAL对遥感影像重投影
  20. java基础学习之this和super和内存结构

热门文章

  1. 数学基础 - 第十一章 三角形
  2. Linux中用tar命令对文件夹进行打包压缩
  3. python解析mht文件_请教怎么解析.mht文件为html文件
  4. 开机加速——在注册表里禁止开机自检硬盘
  5. excel2007不显示文件名
  6. 科学课和计算机整合,信息技术与小学科学课堂整合的现状分析论文
  7. 华硕笔记本官网驱动如何下载
  8. 如何拆分PDF成单页?这三个方法分享给你
  9. echarts地图整体渐变色
  10. 触摸屏与TSC2005触摸屏控制器