pytorch中[..., 0]的用法說明
在看程序的時候看到了x[…, 0]的語句不是很理解,后來自己做實(shí)驗(yàn)略微了解,以此記錄方便自己查看。
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
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根軸上的第一列數(shù)字組成tensor,[0, …]表示抽取tensor b的第一根軸上的第一列數(shù)字組成tensor,[0, …, 0]表示抽取b的第一根和第四根軸上的第一列數(shù)字組成tensor。
還發(fā)現(xiàn)一個現(xiàn)象
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))
補(bǔ)充:PyTorch中[..., 0]的使用案例
1. 示例1
import torch a = torch.rand((17, 24, 8)) b = a[..., 0] c = a[:, :, 0] print(b == c)
結(jié)果為True
2. 示例2
import torch a = torch.rand((64, 17, 24, 8)) b = a[..., 0] c = a[:, :, :, 0] print(b == c)
結(jié)果為True
3. 結(jié)論
可以看出[…, 0]相當(dāng)于[:, :, … :, 0]
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持本站。
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。