PyTorch学习笔记(2)——randn_like()、layout、memory_format

1.randn_like()

torch.randn_like(input, *, dtype=None, layout=None, device=None, requires_grad=False, memory_format=torch.preserve_format) -> Tensor

  返回一个和输入大小相同的张量,其由均值为0、方差为1的标准正态分布填充。即
torch.randn_like(input)等价于torch.randn(input.size(), dtype=input.dtype, layout=input.layout, device=input.device)

dtype(torch.dtype, optional)期望返回张量的类型,默认为input的类型
layout(torch.layout, optional)期望返回张量的分布,默认为input的分布
device(torch.device, optional)期望返回张量使用的设备,默认与input相同
requires_grad(bool, optional)如果需要在返回张量上保存梯度,默认为False
memory_format(torch.memory_format, optional)期望返回张量的保存类型,默认为torch.preserve_format

参考:
  randn_like相应官方文档


2.torch.layout

  torch.layout表示torch.Tensor的内存分布。当前PyTorch支持torch.stridedtorch.sparse_coo(PyTorch1.8 测试支持)。
  torch.strided表示稠密张量,是最常见的内存分布方式。每一个张量和一个用来存放数据的torch.Storage向关联。
Example:

>>> x = torch.Tensor([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]])
>>> x.stride()
(5, 1)

>>> x.t().stride()
(1, 5)

参考:
  torch.layout相应官方文档


3.torch.memory_format

  torch.memory_format用来表示torch.Tensor储存格式

  可取值:

torch.contiguous_format:张量会被分配在稠密不重叠的内存中。其中strides显示降序。
torch.channels_last:张量会被分配在稠密不重叠的内存中。其中strides排序为strides[0] > strides[2] > strides[3] > strides[1] == 1
torch.preserve_format:保留输入张量的内存格式,用在clone这样的函数中。如果输入张量是分配在稠密不重叠的内存中,那么输出张量的stride与输入相同。否则,输出的strides使用torch.contiguous_format

  • 14
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值