【发布时间】:2021-12-07 00:38:57
【问题描述】:
我的目标是提取 pytorch 张量的维度,其索引不在给定列表中。我想使用广播来做到这一点,如下所示:
Sim = torch.rand((5, 5))
samples_idx = [0] # the index of dim that I don't want to extract
a = torch.arange(Sim.size(0)) not in samples_idx
result = Sim[a]
我假设 a 将是一个具有 True/Flase 且维度为 5 的张量。但我收到错误 RuntimeError: Boolean value of Tensor with more than one value is ambiguous。谁能帮我指出哪里出错了?谢谢。
【问题讨论】:
-
不清楚你所说的“提取维度”是什么意思,能否提供一个你想要的输入输出示例?
-
以给出的代码为例。我想提取张量
Sim的第 1-4 行(不包括 0)以形成子张量。我不想提取的维度索引将添加到列表中。它可能包含几个不连续的索引。所以我需要获取一个布尔Tensor来显示我是否需要对应的维度。
标签: python pytorch tensor broadcast