pytorch - 在 PyTorch 中用张量索引多维张量
问题描述
我有以下代码:
a = torch.randint(0,10,[3,3,3,3])
b = torch.LongTensor([1,1,1,1])
我有一个多维索引b
,想用它来选择a
. 如果 b 不是张量,我可以这样做:
a[1,1,1,1]
返回正确的单元格,但是:
a[b]
不起作用,因为它只选择a[1]
了四次。
我怎样才能做到这一点?谢谢
解决方案
一个更优雅(更简单)的解决方案可能是简单地转换b
为一个元组:
a[tuple(b)]
Out[10]: tensor(5.)
我很想知道它是如何与“常规”numpy 一起工作的,并在这里找到了一篇相关文章很好地解释了这一点。
推荐阅读
- c# - 使用存储过程作为数据源的 datagridview 出现错误“数据读取器与指定的 'DatabaseModel”不兼容
- python - 使用 spatialite/python 在不同的驱动器上附加数据库
- swift - 如何通过触摸按钮展开、隐藏pickerView?迅速
- yii2 - 获取yii2控制器中选定下拉选项的值
- .net - 未启用远程客户端协议,并且未在连接字符串中指定远程协议
- c++ - 错误:clBuildProgram(CL_BUILD_PROGRAM_FAILURE)
- itext - iText - 如何替换页面并保留书签
- python - Python argparse 中的 MetavarTypeHelpFormatter 是什么意思?
- javascript - 在 nodejs 服务器和 react web 客户端之间共享 javascript 类
- php - Twitter Group DM API