与torch.no_grad:AttributeError:__enter__

Posted

技术标签:

【中文标题】与torch.no_grad:AttributeError:__enter__【英文标题】:with torch.no_grad: AttributeError: __enter__ 【发布时间】:2021-06-19 00:24:10 【问题描述】:
with torch.no_grad:AttributeError: __enter__

我在运行 pytorch 代码时遇到此错误。

我有torch==0.4.1 torchvision==0.3.0,我在google colab 中运行代码。

【问题讨论】:

【参考方案1】:

torch.no_grad 是一个上下文管理器,它确实有 __enter____exit__

你应该将它与with 语句一起使用,像这样

with context_manager():
    pass

因此,只需将with torch.no_grad:(访问属性)替换为with torch.no_grad():(调用方法)即可正确使用上下文管理器。

【讨论】:

感谢您的支持:) 我遇到了另一个错误:RuntimeError: One of the distinct Tensors does not require grad 你有什么想法吗?? @DayanandDhumala 我不熟悉您的计算图,但在创建张量时尝试为该张量设置requires_grad=True,例如my_tensor = torch.tensor([1], requires_grad=True)my_tensor.requires_grad = True 你好@trsvchn:

以上是关于与torch.no_grad:AttributeError:__enter__的主要内容,如果未能解决你的问题,请参考以下文章

Torch.no_grad()影响MSE损失

【Pytorch】model.eval() vs torch.no_grad()

pytorch 笔记:validation ,model.eval V.S torch.no_grad

pytorch中model.eval()和torch.no_grad()的区别

pytorch中model.eval()和torch.no_grad()的区别

pytorch torch.no_grad()函数(禁用梯度计算)(当确保下文不用backward()函数计算梯度时可以用,用于禁用梯度计算功能,以加快计算速度)