【发布时间】:2018-05-02 14:51:25
【问题描述】:
给定a = torch.randn(3, 2, 4, 5),我如何选择像(2, :, 0, :), (1, :, 1, :), (2, :, 2, :), (0, :, 3, :) 这样的子张量(生成的张量大小为(2, 4, 5) 或(4, 2, 5)?
虽然a[2, :, 0, :] 给出了
0.5580 -0.0337 1.0048 -0.5044 0.6784
-1.6117 1.0084 1.1886 0.1278 0.3739
[torch.FloatTensor of size 2x5]
但是,a[[2, 1, 2, 0], :, [0, 1, 2, 3], :] 给出了
TypeError: 对张量执行基本索引并遇到错误索引 dim 0 与列表类型的对象。唯一支持的类型是整数、切片、numpy 标量,或者如果使用 torch.LongTensor 或 torch.ByteTensor 进行索引,则只能传递单个张量。
虽然numpy 成功返回了(4, 2, 5) 张量。
【问题讨论】: