使用torch.Storage共享多个张量的相同存储以及将torch.Tensor转化为torch.Storage

Song • 3848 次浏览 • 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.Storage
  • torch.FloatStorage()类型之间的转换,其实文档里有介绍,我这里给个例子:
    a = torch.FloatTensor([1,2,3,4])
    print a.char()
    print a.long()

三、torch.Storagetorch.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
提交评论
要回复文章请先登录注册
用户评论
  • 没有评论
Pytorch是什么?关于Pytorch! pytorch通过torch.cuda使用GPU加速运算且比较GPU与CPU运算效果以及应用场景