contiguous:view只能用在contiguous的variable上。
如果在view之前用了transpose, permute等,需要用contiguous()来返回一个contiguous copy。
一种可能的解释是:
有些tensor并不是占用一整块内存,而是由不同的数据块组成,而tensor的view()操作依赖于内存是整块的,这时只需要执行contiguous()这个函数,把tensor变成在内存中连续分布的形式。
判断是否contiguous用torch.Tensor.is_contiguous()函数
x = x.transpose(3, 2).contiguous()
return x.view(x.size(0), -1)
本文详细解析了PyTorch中Contiguous张量的概念及其重要性。阐述了为何在使用view()操作前,可能需要调用contiguous()函数以确保张量在内存中连续分布。并介绍了如何判断张量是否为Contiguous,以及如何通过transpose和permute等操作后恢复其Contiguous状态。
1238

被折叠的 条评论
为什么被折叠?



