tensor.contiguous()
时间: 2023-05-02 07:03:11 浏览: 69
tensor.contiguous() 是 PyTorch 中用来返回按顺序保存的连续张量的函数。在进行数据变换或者操作时,可能会使得张量不再是按顺序保存的连续数组,这时使用.contiguous()函数可以把张量重新变为按顺序保存的连续数组。
相关问题
pytorch tensor.contiguous()
在 PyTorch 中,当一个张量不是按照内存中连续的方式存储时,它被称为非连续性张量。在这种情况下,我们可以使用 `tensor.contiguous()` 方法来返回一个连续的张量。
具体来说,当一个张量的内存不是按照连续方式存储时,这个张量的元素在内存中的存储位置可能是不连续的。这种情况下,我们无法直接对该张量进行一些操作,比如进行矩阵乘法等操作。因此,我们需要调用 `contiguous()` 方法来将该张量复制到一个连续的内存块中,使得元素在内存中的存储位置变得连续。这样,我们就可以对它进行操作了。
需要注意的是,`contiguous()` 方法会返回一个新的张量,而不是修改原有的张量。因此,如果需要修改原有的张量,需要将返回值再次赋值给原变量。
tensor.contiguous().view(-1)
这行代码的作用是将一个 Tensor 进行内存连续化操作,然后将其形状改变为 1 维。在 PyTorch 中,Tensor 可能因为各种操作而不再是内存连续的,如果需要对其进行操作,就需要先将其内存连续化。使用 contiguous() 函数可以实现这一功能,view() 函数则可以将其形状改变为指定的形状。在这行代码中,-1 表示将原 Tensor 扁平化成 1 维的形状。
阅读全文