python - 通过连接从元组的多个元素创建火炬张量的简单方法
问题描述
输入
我的清单如下
r1 = [([[[1, 2, 3], [1, 2, 3]],
[[4, 5, 6], [4, 5, 6]]],
[[[7, 8], [7, 8]],
[[9, 10], [9, 10]]]),
([[[11, 12, 13], [11, 12, 13]],
[[14, 15, 16], [14, 15, 16]]],
[[[17, 18], [17, 18]],
[[19, 20], [19, 20]]])]
我将从上面的输入中制作 2 个火炬张量。
我想要的输出如下
输出
output =
[tensor([[[ 1, 2, 3],
[ 1, 2, 3]],
[[ 4, 5, 6],
[ 4, 5, 6]],
[[11, 12, 13],
[11, 12, 13]],
[[14, 15, 16],
[14, 15, 16]]]),
tensor([[[ 7, 8],
[ 7, 8]],
[[ 9, 10],
[ 9, 10]],
[[17, 18],
[17, 18]],
[[19, 20],
[19, 20]]])]
我的代码如下。
output = []
for i in range(len(r1[0])):
templates = []
for j in range(len(r1)):
templates.append(torch.tensor(r1[j][i]))
template = torch.cat(templates)
output.append(template)
有没有更简单或更容易的方法来获得我想要的结果?
解决方案
这将做:
output = [torch.Tensor([*a, *b]) for a, b in zip(*r1)]
它首先连接两个列表的相应项目,然后创建张量
推荐阅读
- elasticsearch - Update By Query API 是在 elasticsearch 中更新单个文档的好选择吗?
- ios - 按下任何按钮后,游戏似乎冻结了
- sql - VoltDB 在视图上计数不同
- r - 如何解决 R 上的重复行名错误
- azure - Azure 资源标记更改历史记录/还原已删除的标记
- docker - Statefulset 在本地 minikube 中不起作用。它给出,来自服务器的错误(BadRequest):pod mysql-0 没有分配主机
- android - 在没有安装 PDF 直接软件的情况下在 Android 中以编程方式打印 ZPL 文件
- java - 为什么 Spring "ForwardedHeaderFilter" 和 "RelativeRedirectFilter" 使用代码 303 而不是 302 重定向?
- java - 如何遍历 JPA 响应并从中获取值
- css - 定位 Tailwind CSS 文件