torch.no_grad是一个类,pytorch官网描述如下:

一个上下文管理器,disable梯度计算。disable梯度计算对于推理是有用的,当你确认不会调用Tensor.backward()的时候。这可以减少计算所用内存消耗。这个模式下,每个计算结果的requires_grad=False,尽管输入的requires_grad=True。

上下文管理器是thread local的,不会影响其它线程的计算。

x = torch.tensor([1.], requires_grad=True)
with torch.no_grad():y = x * 2
y.requires_grad  # False

也可以作为装饰器。

@torch.no_grad()
def doubler(x):return x * 2
z = doubler(x)
z.requires_grad  # False

在我们对模型进行验证的时候,可以使用下面两种格式:

model.eval()
with torch.no_grad():pass

或者使用装饰器

@torch.no_grad()
def eval():...

【torch.no_grad()】相关推荐

  1. 【Torch笔记】计算图与动态图

    [Torch笔记]计算图与动态图 1 什么是计算图? 计算图(Computational Graph)是用来 描述运算 的有向无环图,主要由节点和边组成.节点表示数据,如向量.矩阵.张量,边表示运算, ...

  2. 【Torch笔记】Tensor 简介与创建方法

    [Torch笔记]Tensor 1 什么是 Tensor? Tensor,又称张量,它是矩阵向任意维度的推广. [Tensor 与 Variable(目前已弃用,但最好了解一下)] Variable ...

  3. 【Torch笔记】autograd自动求导系统

    [Torch笔记]autograd自动求导系统 Pytorch 提供的自动求导系统 autograd,我们不需要手动地去计算梯度,只需要搭建好前向传播的计算图,然后使用 autograd 计算梯度即可 ...

  4. 【torch.optim】优化器的使用 / 学习率的调整 / SWA策略

    torch.optim torch.optim是实现各种优化算法的包.大多数常用的方法都已得到支持,而且接口足够通用,因此将来还可以轻松集成更复杂的方法. 优化器 使用优化器 为了使用一个优化器,必须 ...

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

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

  6. 【Torch API】torch.nonzero用法详解

    torch.nonzero(input, *, out=None, as_tuple=False) → LongTensor or tuple of LongTensors 功能:用于输出数组的非零值 ...

  7. 【深度学习】with torch.no_grad的作用

    with open("1.txt") as file:data = file.read() 总结with工作原理: (1)紧跟with后面的语句被求值后,返回对象的"–e ...

  8. 【Pytorch】model.train()和model.eval()用法和区别,以及model.eval()和torch.no_grad()的区别

    model.train() 启用 Batch Normalization 和 Dropout 如果模型中有BN层(Batch Normalization)和Dropout,需要在训练时添加model. ...

  9. 【pytorch】 grad、grad_fn、requires_grad()、with torch.no_grad() 、net.train()、net.eval():记录一次奇怪的debug经历

    刚开始接触pytorch框架时,最让我觉得神奇的就是它居然可以–自 动 求 导 ! 于是我开始尝试理解内部的运行机制,但很快放弃了,直接当成黑盒使用-- 最近又遇到一个奇怪的bug,让我不得不去学一下 ...

最新文章

  1. Microbiome:简单套路发高分文章--杨树内生和根际微生物组结构
  2. 手机摇一摇效果-html5
  3. Deepmind“好奇心”强化学习新突破!改变奖励机制,让智能体不再“兜圈子”
  4. 深入浅析nginx部署及简单优化
  5. C++ 对TXT 的串并行读写
  6. 测试点分析:1048 数字加密 (20分)_16行代码AC
  7. linux系统每月定时重启,linux系统定时重启.doc
  8. [CEOI2016] kangaroo(排列dp)
  9. Hello World with Spring 3 MVC
  10. 连续出现的字符(信息学奥赛一本通-T1148)
  11. 成为百万程序员第一步:从安装Python开始
  12. 怎么查看XP电脑服务器型号,xp怎么查看电脑配置
  13. 5 呼吸灯verilog与Systemverilog编码
  14. HTML 5中的tips两则
  15. 【一分钟知识】决策树-ID3,C4.5,CART
  16. Coursera 斯坦福大学科学论文写作课程笔记(二)
  17. 基于 Vue 技术栈的微前端方案实践
  18. 【文章整理】一文看懂Cola架构和DDD
  19. 一些网络广告定价模式的含义
  20. 什么是路由器 路由器和路由器之间怎么连接

热门文章

  1. 退休当月要干到月底吗_法律规定退休人员上班到退休当日还是当月
  2. Android图片压缩详解
  3. 项目7 创建与使用触发器
  4. [签约录用] 大学毕业生必须知道的那些事:三方协议与报到证
  5. 西瓜书笔记之 模型评估与选择
  6. wkhtmltopdf 字体无效问题
  7. apt查看安装包可用版本号
  8. 如何申请@MSN.Com后缀的邮箱?
  9. 2019电商生意经(五):明确中台化的概念、形式与战略
  10. SpringCloud整合Seata(Docker)版本异常处理