python - 在 pytorch 中,是否有内置方法来提取具有给定索引的行?
问题描述
假设我有一个火炬张量
import torch
a = torch.tensor([[1,2,3],
[4,5,6],
[7,8,9]])
和一份清单
b = [0,2]
是否有内置方法来提取第 0 行和第 2 行并将它们放入新的张量中:
tensor([[1,2,3],
[7,8,9]])
特别是,是否有一个看起来像这样的函数:
extract_rows(a,b) -> c
其中c
包含所需的行。当然,这可以通过 for 循环来完成,但内置方法通常更快。
请注意,示例只是一个示例,列表中可能有几十个索引,张量中可能有数百行。
解决方案
看看 torch 内置的index_select()方法。这对你会有帮助。或者您可以使用切片来执行此操作。
tensor = [[1,2,3],
[4,5,6],
[7,8,9]]
new_tensor = tensor[0::2]
print(new_tensor)
输出:
[[1, 2, 3], [7, 8, 9]]
推荐阅读
- ios - 验证我的应用程序时出现证书问题
- stored-procedures - 存储过程中的原子插入
- c# - 更改现有 PDF 中的元素颜色
- arrays - 如何从数组中仅打印一次某些值
- oracle - 为什么此 db 链接链仅在匿名块内导致“同义词循环链”错误?
- c# - 保存到现有的 excel 文件而不打开新的 excel 文件
- c# - 如何在启动类上传递一些属性并在控制器上初始化它
- python - 如果两列值相等,则在 Python 中创建具有 True 和 False 值的第三列
- javascript - Puppeteer:TimeoutError:等待选择器
- ios - iOS 订阅计划选项不针对特定用户显示