python之pytorch中[..., 0]的用法说明

内容摘要
这篇文章主要为大家详细介绍了python之pytorch中[..., 0]的用法说明,具有一定的参考价值,可以用来参考一下。
文章正文

这篇文章主要为大家详细介绍了python之pytorch中[..., 0]的用法说明,具有一定的参考价值,可以用来参考一下。

在看程序的时候看到了x[…, 0]的语句不是很理解,后来自己做实验略微了解,以此记录方便自己查看。

代码如下:


b=torch.Tensor([[[[10,2],[4,5],[7,8]],[[1,2],[4,5],[7,8]]]])
print(b.size())
(1, 2, 3, 2)
print(b[…,0])
tensor([[[10., 4., 7.],
[ 1., 4., 7.]]])
print(b[…,0].size())
(1, 2, 3)
print(b[…,2])
Traceback (most recent call last):
File “”, line 1, in
IndexError: index 2 is out of bounds for dimension 3 with size 2

pytorch中[..., 0]的用法说明

代码如下:


print(b[0,…])
tensor([[[10., 2.],
[ 4., 5.],
[ 7., 8.]],
[[ 1., 2.],
[ 4., 5.],
[ 7., 8.]]])
print(b[0,…].size())
(2, 3, 2)

pytorch中[..., 0]的用法说明

代码如下:


print(b[0,…,0].size())
(2, 3)
print(b[0,…,0])
tensor([[10., 4., 7.],
[ 1., 4., 7.]])

pytorch中[..., 0]的用法说明

[…, 0]表示抽取tensor b的第4根轴上的第一列数字组成tensor,[0, …]表示抽取tensor b的第一根轴上的第一列数字组成tensor,[0, …, 0]表示抽取b的第一根和第四根轴上的第一列数字组成tensor。

还发现一个现象

代码如下:


print(b[…,0:])
tensor([[[[10., 2.],
[ 4., 5.],
[ 7., 8.]],
[[ 1., 2.],
[ 4., 5.],
[ 7., 8.]]]])

pytorch中[..., 0]的用法说明

代码如下:


print(b[…,1:])
tensor([[[[2.],
[5.],
[8.]],
[[2.],
[5.],
[8.]]]])

pytorch中[..., 0]的用法说明

代码如下:


print(b[…,2:])
tensor([], size=(1, 2, 3, 0))

pytorch中[..., 0]的用法说明

 

补充:PyTorch中[..., 0]的使用案例

 

1. 示例1

代码如下:


import torch
a = torch.rand((17, 24, 8))
b = a[..., 0]
c = a[:, :, 0]
print(b == c)

pytorch中[..., 0]的用法说明

结果为True

2. 示例2

代码如下:


import torch
a = torch.rand((64, 17, 24, 8))
b = a[..., 0]
c = a[:, :, :, 0]
print(b == c)

pytorch中[..., 0]的用法说明

结果为True

3. 结论

可以看出[…, 0]相当于[:, :, … :, 0]

以上为个人经验,希望能给大家一个参考,也希望大家多多支持php教程。

注:关于python之pytorch中[..., 0]的用法说明的内容就先介绍到这里,更多相关文章的可以留意

代码注释

作者:喵哥笔记

IDC笔记

学的不仅是技术,更是梦想!