1、torch.is_storage(obj)函数介绍
测试obj是不是storage类型,如果是的话就返回True,否则返回False。
2、什么是Storage?
在PyTorch中,Tensor 分为头信息区(Header)和存储区(Storage)。头信息区(Header)主要存储Tensor的形状(size)、步长(stride)、数据类型(type)等信息,其真正的数据保存为连续数组,存储在存储区(Storage)中。
一般来说PyTorch中Tensor的数据很大,可能是成千上万的,所以我们头信息区(Header)通常占用的内存比较少,主要内存的占用取决于Tensor中元素的数目,也就是存储区(Storage)的大小。
import torch
a = torch.rand(3, 5)
print(a)
print(a.storage())
运行上述代码可以看到Storge只是一连串的数据而已,并没有别的信息。
3、torch.Storage存储的数据类型
torch.Storage存储的数据类型取决于Tensor的默认数据类型,例如默认数据类型为torch.float,则torch.Storage将会具体化为torch.FloatStorage。
4、torch.Storage实现共享内存
不同的Tensor的头部信息一般是不同的,但是它们使用的Storage可能相同,也就是共享内存。