python - Pytorch 张量 - 如何通过特定张量获取索引
问题描述
我有张量
t = torch.tensor([[1, 0, 0, 0], [0, 0, 1, 0], [0, 1, 0, 0], [1, 0, 0, 0]])
和一个查询张量
q = torch.tensor([1, 0, 0, 0])
有没有办法获取q
like的索引
indexes = t.index(q) # get back [0, 3]
在火炬?
解决方案
怎么样
In [1]: torch.nonzero((t == q).sum(dim=1) == t.size(1))
Out[1]:
tensor([[ 0],
[ 3]])
Comparing在和之间t == q
执行逐元素比较,因为您正在寻找整行匹配,所以您需要沿着行查看哪一行是完美匹配。t
q
.sum(dim=1)
== t.size(1)
从 v0.4.1 开始,torch.all()
支持dim
参数:
torch.all(t==q, dim=1)
推荐阅读
- amazon-redshift - 如何在 Redshift 中截断 LISTAGG() 以防止溢出
- python - 正则表达式在在线测试器(https://regexr.com/)中工作,但不在 python/google colab 中
- c# - 如何在 VS Code 中触发 REAL 文档弹出窗口?
- odoo - 数据转储和提交到Odoo进行版本升级转换之间如何处理新收集的数据
- node.js - 使用 ApolloServer 从 graphql-import 迁移到仅 graphql-tools 时遇到问题,指令停止工作
- web - 与 Visual Studio Code 协作有哪些选择?
- sql - 将链接的外键存储在单独的表中?SQL
- javascript - 检查生成的页面模板上的所有复选框
- windows - “实用逆向工程”中的勘误表?
- visual-studio - 创建 Visual Studio 扩展以将项目添加到 Git 历史记录页面