积跬步至千里 || PyTorch 中的“with torch no_grad” 语句

news/2024/11/17 1:55:56/

PyTorch 中的“with torch no_grad” 语句

文章目录

  • PyTorch 中的“with torch no_grad” 语句
  • 示例 1
  • 示例 2

“with ”torch.no_grad()的使用就像一个循环,其中循环内的每个张量都将requires_grad设置为False。这意味着当前与当前计算图相连的任何具有梯度的张量现在都与当前图分离。我们不再能够计算关于这个张量的梯度。

张量从当前图中分离,直到它在循环内。一旦它离开循环,如果张量是用梯度定义的,它就会再次附加到当前图。

让我们举几个例子来更好地理解它是如何工作的。

示例 1

在这个例子中,我们用requires_grad = true创建了一个张量 x 。接下来,我们定义这个张量 x 的函数 y 并将该函数放入 with循环中。现在 x 在循环内,所以它的requires_grad被设置为False。torch.no_grad()

在循环中,无法计算 y 相对于 x 的梯度。所以,y.requires_grad返回False。

# import torch library
import torch# define a torch tensor
x = torch.tensor(2., requires_grad = True)
print("x:", x)# define a function y
with torch.no_grad():y = x ** 2
print("y:", y)# check gradient for Y
print("y.requires_grad:", y.requires_grad)

x: tensor(2., requires_grad=True)
y: tensor(4.)
y.requires_grad: False

示例 2

在这个例子中,我们在循环之外定义了函数z。所以,z.requires_grad返回True。

# import torch library
import torch# define three tensors
x = torch.tensor(2., requires_grad = False)
w = torch.tensor(3., requires_grad = True)
b = torch.tensor(1., requires_grad = True)print("x:", x)
print("w:", w)
print("b:", b)# define a function y
y = w * x + b
print("y:", y)# define a function z
with torch.no_grad():z = w * x + bprint("z:", z)# check if requires grad is true or not
print("y.requires_grad:", y.requires_grad)
print("z.requires_grad:", z.requires_grad)

x: tensor(2.)
w: tensor(3., requires_grad=True)
b: tensor(1., requires_grad=True)
y: tensor(7., grad_fn=)
z: tensor(7.)
y.requires_grad: True
z.requires_grad: False


http://www.ppmy.cn/news/687968.html

相关文章

mate10的html5跑分,麒麟970逆天!华为Mate10跑分首曝:媲美骁龙835

麒麟970逆天!华为Mate10跑分首曝:媲美骁龙835!华为新发布的Mate 10旗舰手机首发搭载了麒麟970,规格相当彪悍,将国产手机芯片再次带到新高度,尤其是首发集成了专用的神经网络处理单元NPU,可以大大…

华为mate10科学计算机,华为Mate10的电脑模式如何使用?方法简单粗暴手机秒变PC!...

2018-4-4 16:05 看电泳,手机屏幕不过瘾?差资料,文字太小累眼睛?华为Mate10可外接显示设备,同时还支持异源投屏,大屏幕与手机显示不同内容,一机两用。此外,华为Mate10电脑模式还可以配…

华为mat10计算机,华为Mate10电脑模式体验评测:一个小铁盒,竟然让手机秒变电脑?...

众所周知,华为Mate10发布的时候,该机内置了电脑模式,只需一根Type-C转HDMI的数据线链接到显示器上,就能够将手机变成电脑主机,而显示器则显示出一种全新的类PC界面的电脑模式。 那么,华为Mate10的电脑模式到…

华为mate10科学计算机,华为mate10最具特色的五大功能,可惜现在知道的人还不多...

最近一段时间华为mate10销量越来越火,而且出现供不应求的现象,可见这款手机受到人们的喜欢,人们喜欢的原因源于此款手机的强大配置和精美外观,搭配麒麟970和AI人工智能以及玻璃背面等多种全新的设置,配置只是一方面&am…

android 界面分栏,华为Mate10怎么分屏?华为Mate10/10 Pro分栏分屏模式开启教程

想一边看电影一边和好友聊天?开启分屏模式,在屏幕中打开两个窗口,同时显示并运行两个应用程序。 . 华为Mate10/10 Pro分栏分屏模式开启教程 指关节启动分屏: 打开支持分屏的应用后,使用单指关节稍微用力触碰屏幕&#…

mate10支持html,华为mate10能升级到EMUI10吗 EMUI10支持华为mate10吗

华为mate10是可以升级到EMUI10的,虽说华为mate10是一个老手机了,但是性能和配置还是不错的,最近新闻也公布了支持EMUI10,具体可以看看本文提供的介绍。 华为mate10能升级到EMUI10吗 根据华为公布的EMUI 10可更新机型名单&#xff…

早期华为发售设备安装Play商店,安装服务框架谷歌Mate20,P30,Mate10,P20

早期华为发售设备安装Play商店,安装服务框架谷歌Mate20,P30,Mate10,P20 一直以来,大家一直关注的是鸿蒙2.0,鸿蒙3.0安装Google谷歌,Play商店。但是我们也疏忽了一些华为荣耀早期的发售设备,这些设备实在被美国制裁以前华为荣耀发布的手机或者…

华为emul升级_华为mate10何时能升级EMUl9.1稳定版?

目前官方尚未公布正式版发布时间,想要体验尝鲜的可尝试上述步骤参与公测,有小道消息称明天下午14点半会推送正式版,也就是14号下午,当然能推送最好了,未能推送也不必失望,目前有尝鲜版,具体步骤…