在 PyTorch 中获取张量的 autograd 计数器

Getting the autograd counter of a tensor in PyTorch

我正在使用 PyTorch 训练网络。我正在浏览 autograd 文档,here 提到对于每个张量,autograd 实现了一个计数器来跟踪任何张量的“版本”。我怎样才能得到图中任何张量的这个计数器?

我需要它的原因。

我遇到了 autograd 错误

[torch.cuda.FloatTensor [x, y, z]], which is output 0 of torch::autograd::CopySlices, is at version 7; expected version 6 instead. Hint: the backtrace further above shows the operation that failed to compute its gradient. The variable in question was changed in there or anywhere later. Good luck!

这对我来说并不陌生,我以前也成功处理过。这一次我不明白为什么张量会是版本 7 而不是版本 6。为了回答这个问题,我想知道 运行.[=12= 中任何给定点的版本]

谢谢。

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

作为使用方法的示例,提供了以下 MSE。

import torch

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