您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:pytorch中[..., 0]的用法说明

51自学网 2021-10-30 22:39:42
  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, inIndexError: index 2 is out of bounds for dimension 3 with size 2
print(b[0,…])tensor([[[10., 2.],[ 4., 5.],[ 7., 8.]],[[ 1., 2.],[ 4., 5.],[ 7., 8.]]])print(b[0,…].size())(2, 3, 2)
print(b[0,…,0].size())(2, 3)print(b[0,…,0])tensor([[10., 4., 7.],[ 1., 4., 7.]])

[…, 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.]]]])
print(b[…,1:])tensor([[[[2.],[5.],[8.]],[[2.],[5.],[8.]]]])
print(b[…,2:])tensor([], size=(1, 2, 3, 0))

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

1. 示例1

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

结果为True

2. 示例2

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

结果为True

3. 结论

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

以上为个人经验,希望能给大家一个参考,也希望大家多多支持51zixue.net。


浅谈pytorch中stack和cat的及to_tensor的坑
Python 线程池模块之多线程操作代码
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。