【问题标题】:Getting the autograd counter of a tensor in PyTorch在 PyTorch 中获取张量的 autograd 计数器
【发布时间】:2021-09-20 09:19:18
【问题描述】:

我正在使用 PyTorch 来训练网络。我正在浏览 autograd 文档,here 提到对于每个张量都有一个计数器,autograd 实现了一个计数器来跟踪任何张量的“版本”。如何为图中的任何张量获取此计数器?

我需要它的原因。

我遇到了 autograd 错误

[torch.cuda.FloatTensor [x, y, z]],即torch::autograd::CopySlices的输出0,版本7;而是预期的版本 6。提示:上面的回溯显示了未能计算其梯度的操作。有问题的变量在那里或以后的任何地方都被改变了。祝你好运!

这对我来说并不新鲜,我之前已经成功处理过它。这一次我不明白为什么张量会是版本 7 而不是 6。要回答这个问题,我想知道运行中任何给定点的版本。

谢谢。

【问题讨论】:

    标签: python python-3.x pytorch autograd


    【解决方案1】:

    可以通过命令tensor_name._version获取。

    作为如何使用它的示例,提供了以下 MSE。

    import torch
    
    a = torch.zeros(10, 5)
    print(a._version)  # prints 0
    a[:, 1] = 1
    print(a._version)  # prints 1  
    

    【讨论】:

      猜你喜欢
      • 2021-08-19
      • 2021-07-23
      • 2018-09-06
      • 1970-01-01
      • 2020-01-03
      • 2020-12-29
      • 1970-01-01
      • 1970-01-01
      • 2020-08-31
      相关资源
      最近更新 更多