使用torch.Storage共享多个张量的相同存储以及将torch.Tensor转化为torch.Storage
Song • 7739 次浏览 • 0 个回复 • 2017年09月01日
torch.Storage
是单个数据类型的连续的一维数组,每个torch.Tensor
都具有相同数据类型的相应存储。他是torch.tensor
底层数据结构,他除了像Tensor
一样定义数值,还可以直接把文件映射到内存中进行操作,如果你使用的是pytorch神经网络,你不需要直接使用它们。中文文档地址torch.Storage
注意:任何比一维数组更复杂的都需要用到张量。
torch.Storage
主要有以下几种类型:
torch.FloatStorage([1,2,3,4,5])
torch.ByteStorage([1,2,3,4,5])
torch.ShortStorage([1,2,3,4,5])
torch.IntStorage([1,2,3,4,5])
torch.LongStorage([1,2,3,4,5])
torch.FloatStorage([1,2,3,4,5])
torch.DoubleStorage([1,2,3,4,5])
torch.ShortStorage([1,2,3,4,5])
一、构造函数
- 你可以使用
torch.FloatStorage()
构造一个空的Storage,构造函数的数值是随机初始化的。 - 我们可以使用2种方法来构造
torch.FloatStorage()
并把它存入内存中# 通过数组 torch.FloatStorage([1,2,3,4,5]) # 随机生成一个Storage torch.FloatStorage(5)
二、torch.Storage
的操作以及类型的转变
torch.Storage
包含多种操作例如:size()
返回此存储转的大小,tolist()
返回一个包含此存储中元素的列表等等,具体参考文档torch.Storagetorch.FloatStorage()
类型之间的转换,其实文档里有介绍,我这里给个例子:a = torch.FloatTensor([1,2,3,4]) print a.char() print a.long()
三、torch.Storage
与torch.Tensor
之间的转化
将Tensor转换为Storage非常简单,只需要storage()
函数即可
import torch
a = torch.FloatTensor([1,2,3,4])
print a.storage()
它没有其他高级的用法,它是张量的一层。它可以共享多个张量的相同存储。或者更有效地处理一些操作。
原创文章,转载请注明 :使用torch.Storage共享多个张量的相同存储以及将torch.Tensor转化为torch.Storage - pytorch中文网
原文出处: https://ptorch.com/news/52.html
问题交流群 :168117787
- 没有评论