本文简要介绍python语言中 torch.Tensor.view
的用法。
用法:
Tensor.view(*shape) → Tensor
shape(torch.Size或者诠释...) -所需尺寸
dtype(
torch.dtype
) -所需的数据类型返回与
self
张量具有相同数据但具有不同shape
的新张量。返回的张量共享相同的数据,并且必须具有相同数量的元素,但可能具有不同的大小。对于要查看的张量,新视图大小必须与其原始大小和步幅兼容,即每个新视图维度必须是原始维度的子空间,或者仅跨越满足以下条件的原始维度 contiguity-like 条件 ,
否则,如果不复制它(例如,通过
contiguous()
),则无法将self
张量视为shape
。当不清楚是否可以执行view()
时,建议使用reshape()
,如果形状兼容,则返回视图,否则复制(相当于调用contiguous()
)。例子:
>>> x = torch.randn(4, 4) >>> x.size() torch.Size([4, 4]) >>> y = x.view(16) >>> y.size() torch.Size([16]) >>> z = x.view(-1, 8) # the size -1 is inferred from other dimensions >>> z.size() torch.Size([2, 8]) >>> a = torch.randn(1, 2, 3, 4) >>> a.size() torch.Size([1, 2, 3, 4]) >>> b = a.transpose(1, 2) # Swaps 2nd and 3rd dimension >>> b.size() torch.Size([1, 3, 2, 4]) >>> c = a.view(1, 3, 2, 4) # Does not change tensor layout in memory >>> c.size() torch.Size([1, 3, 2, 4]) >>> torch.equal(b, c) False
view(dtype) → Tensor
返回与
self
张量具有相同数据但具有不同dtype
的新张量。dtype
每个元素的字节数必须与self
的 dtype 相同。警告
TorchScript 不支持此重载,在 Torchscript 程序中使用它会导致未定义的行为。
例子:
>>> x = torch.randn(4, 4) >>> x tensor([[ 0.9482, -0.0310, 1.4999, -0.5316], [-0.1520, 0.7472, 0.5617, -0.8649], [-2.4724, -0.0334, -0.2976, -0.8499], [-0.2109, 1.9913, -0.9607, -0.6123]]) >>> x.dtype torch.float32 >>> y = x.view(torch.int32) >>> y tensor([[ 1064483442, -1124191867, 1069546515, -1089989247], [-1105482831, 1061112040, 1057999968, -1084397505], [-1071760287, -1123489973, -1097310419, -1084649136], [-1101533110, 1073668768, -1082790149, -1088634448]], dtype=torch.int32) >>> y[0, 0] = 1000000000 >>> x tensor([[ 0.0047, -0.0310, 1.4999, -0.5316], [-0.1520, 0.7472, 0.5617, -0.8649], [-2.4724, -0.0334, -0.2976, -0.8499], [-0.2109, 1.9913, -0.9607, -0.6123]]) >>> x.view(torch.int16) Traceback (most recent call last): File "<stdin>", line 1, in <module> RuntimeError: Viewing a tensor as a new dtype with a different number of bytes per element is not supported.
参数:
参数:
相关用法
- Python PyTorch Tensor.unflatten用法及代码示例
- Python PyTorch Tensor.register_hook用法及代码示例
- Python PyTorch Tensor.storage_offset用法及代码示例
- Python PyTorch Tensor.to用法及代码示例
- Python PyTorch Tensor.sparse_mask用法及代码示例
- Python PyTorch Tensor.is_leaf用法及代码示例
- Python PyTorch Tensor.imag用法及代码示例
- Python PyTorch Tensor.unfold用法及代码示例
- Python PyTorch Tensor.real用法及代码示例
- Python PyTorch Tensor.refine_names用法及代码示例
- Python PyTorch Tensor.rename用法及代码示例
- Python PyTorch Tensor.new_empty用法及代码示例
- Python PyTorch Tensor.index_copy_用法及代码示例
- Python PyTorch Tensor.new_tensor用法及代码示例
- Python PyTorch Tensor.scatter_用法及代码示例
- Python PyTorch Tensor.fill_diagonal_用法及代码示例
- Python PyTorch Tensor.repeat用法及代码示例
- Python PyTorch Tensor.item用法及代码示例
- Python PyTorch Tensor.tolist用法及代码示例
- Python PyTorch Tensor.put_用法及代码示例
- Python PyTorch Tensor.map_用法及代码示例
- Python PyTorch Tensor.stride用法及代码示例
- Python PyTorch Tensor.index_fill_用法及代码示例
- Python PyTorch Tensor.align_as用法及代码示例
- Python PyTorch Tensor.new_full用法及代码示例
注:本文由纯净天空筛选整理自pytorch.org大神的英文原创作品 torch.Tensor.view。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。