例如,一個二維張量:>>> t = torch.tensor([[1, 2, 3], [4, 5, 6], [7, 8, 9]])還有一個清單l = [0, 1]如果我執行t[l],那么它最終會打印第 0 行和第 1 行t。但是如果我想l用作索引怎么辦?我希望用于l查找第 0 行和第 1 列的元素。換句話說,我希望得到與t[0, 1]or相同的結果t[0][1]。我也想在二維以上使用它。使用lwith lengthn作為索引來跟蹤n維度張量中的元素。
2 回答

弒天下
TA貢獻1818條經驗 獲得超8個贊
IIUC 您可以針對給定場景執行此操作 -t[tuple(l)]
t
tensor([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
l
[0, 1]
t[tuple(l)] # equivalent to t[(0,1)] or t[0,1]
tensor(2)

慕容3067478
TA貢獻1773條經驗 獲得超3個贊
我只是寫了一個遞歸函數來解決這個問題,也許有人有更優雅的解決方案?
def list_as_index(t, l):
if not l:
return t
else:
return list_as_index(t[l[0]], l[1:])
- 2 回答
- 0 關注
- 124 瀏覽
添加回答
舉報
0/150
提交
取消