【问题标题】:What is the difference between .data.size() and .size() in PyTorch?PyTorch 中的 .data.size() 和 .size() 有什么区别?
【发布时间】:2021-09-17 09:11:42
【问题描述】:

我是编程和机器学习的新手,我一直在玩一些简单的数据集和神经网络架构。很多时候我想检查我的数据和对象的维度,看看它们是否有意义。

我总是使用.size()len(),但是我看到有人使用.data.size()。我已经在我正在做的一些简单的事情上对它们进行了测试,到目前为止它们给了我相同的结果。是我还没遇到的还是完全一样的?

一个例子:

    print(test_images.data.size())
    print(test_outputs.data.size())

给出相同的:

    print(test_images.size())
    print(test_outputs.size())

这是:

    torch.Size([10, 1, 224, 224])
    torch.Size([10, 68, 2])
    torch.Size([10, 68, 2])

欢迎任何澄清!在此先感谢:)

【问题讨论】:

    标签: python pytorch size tensor torchvision


    【解决方案1】:

    根据文档What about .data?.data 和 Pytorch v0.4.0 之后的张量本身没有区别。但是,.data 在某些情况下可能不安全。 autograd 不会跟踪 x.data 上的任何更改,并且如果在后向传递中需要 x,则计算出的梯度将不正确。

    【讨论】:

      猜你喜欢
      • 2013-10-04
      • 1970-01-01
      • 1970-01-01
      • 2019-12-23
      • 2018-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-05
      相关资源
      最近更新 更多