千家信息网

pytorch中如何抽取一个tensor的行

发表于:2025-01-17 作者:千家信息网编辑
千家信息网最后更新 2025年01月17日,这篇文章主要介绍了pytorch中如何抽取一个tensor的行,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。实验代码如下:b=torc
千家信息网最后更新 2025年01月17日pytorch中如何抽取一个tensor的行

这篇文章主要介绍了pytorch中如何抽取一个tensor的行,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

实验代码如下:

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]

感谢你能够认真阅读完这篇文章,希望小编分享的"pytorch中如何抽取一个tensor的行"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

0