【问题标题】:Is reshape() same as contiguous().view()?reshape() 是否与 contiguous().view() 相同?
【发布时间】:2021-08-17 10:09:17
【问题描述】:

在 PyTorch 中,对于张量 xx.reshape(shape) 总是等价于 x.contiguous().view(shape)

【问题讨论】:

    标签: pytorch reshape tensor torch


    【解决方案1】:

    没有。在某些情况下.reshape(shape) 可以创建视图,但.contiguous().view(shape) 会创建副本。

    这是一个例子:

    x = torch.zeros(8, 10)
    y = x[:, ::2]
    z0 = y.reshape(40)               # Makes a new view
    z1 = y.contiguous().view(40)     # Makes a copy
    

    我们可以确认z0x的新视图,但z1是一个副本:

    > x.data_ptr() == z0.data_ptr()
    True
    > x.data_ptr() == z1.data_ptr()
    False
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-30
      • 2017-12-21
      • 1970-01-01
      • 2010-09-13
      • 2011-01-28
      • 2013-06-21
      相关资源
      最近更新 更多