为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用列表作为pytorch的索引

如何使用列表作为pytorch的索引

Go
江户川乱折腾 2022-12-26 10:01:42
例如,一个二维张量:>>> 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)


查看完整回答
反对 回复 2022-12-26
?
慕容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:])


查看完整回答
反对 回复 2022-12-26
  • 2 回答
  • 0 关注
  • 218 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号