演示 `zip`, `list` 和 `torch.stack` 的使用过程

演示 zip, listtorch.stack 的使用过程。

首先,我们先导入必要的库:

 import torch

现在,假设我们的模拟数据是这样的:

# 这是我们的模拟数据,其中每个内部列表的第一个元素是输入,第二个元素是目标
data = [
    [torch.tensor([1, 2, 3]), torch.tensor([4, 5, 6])],
    [torch.tensor([7, 8, 9]), torch.tensor([10, 11, 12])],
    [torch.tensor([13, 14, 15]), torch.tensor([16, 17, 18])]
]

接下来,我们使用 zip 函数来转置这个数据:

transposed_data = list(zip(*data))
print(transposed_data)

输出:

[(tensor([1, 2, 3]), tensor([7, 8, 9]), tensor([13, 14, 15])), (tensor([4, 5, 6]), tensor([10, 11, 12]), tensor([16, 17, 18]))]

你可以看到,zip 函数已经把我们的数据转置了。现在,我们的数据是元组的列表,其中每个元组的第一个元素是所有输入数据的第一个元素,第二个元素是所有输入数据的第二个元素,以此类推。

接下来,我们使用 torch.stack 函数来把这些数据堆叠成张量:

inputs = torch.stack(transposed_data[0], 0)
targets = torch.stack(transposed_data[1], 0)

现在我们来看看得到的张量:

print(inputs)
print(targets)

输出:

tensor([[ 1,  2,  3],
        [ 7,  8,  9],
        [13, 14, 15]])
tensor([[ 4,  5,  6],
        [10, 11, 12],
        [16, 17, 18]])

这就是 zip, listtorch.stack 的基本使用过程。

以上内容创作通过AI

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值