pytorch中contiguous()

本文详细介绍了PyTorch中contiguous的概念及其重要性。解释了为什么在使用view前可能需要调用contiguous,特别是在进行了如transpose或permute等操作之后。同时,通过实例演示了如何判断一个tensor是否为contiguous,并展示了如何使其变为contiguous形式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

contiguous:view只能用在contiguous的variable上。如果在view之前用了transpose, permute等,需要用contiguous()来返回一个contiguous copy。
一种可能的解释是:
有些tensor并不是占用一整块内存,而是由不同的数据块组成,而tensor的view()操作依赖于内存是整块的,这时只需要执行contiguous()这个函数,把tensor变成在内存中连续分布的形式。
判断是否contiguous用torch.Tensor.is_contiguous()函数。

import torch
x = torch.ones(10, 10)
x.is_contiguous()  # True
x.transpose(0, 1).is_contiguous()  # False
x.transpose(0, 1).contiguous().is_contiguous()  # True

在pytorch的最新版本0.4版本中,增加了torch.reshape(), 这与 numpy.reshape 的功能类似。它大致相当于 tensor.contiguous().view()

https://blog.youkuaiyun.com/u011394059/article/details/78664694
https://blog.youkuaiyun.com/guotong1988/article/details/78730078
https://blog.youkuaiyun.com/u011276025/article/details/73826562
中的Bug3

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值