pytorch每日一学33(torch.hstack())从水平方向(列方向)叠加向量

第33个方法

torch.hstack(tensors, *, out=None) → Tensor

此方法应该和前面的torch.dstack()对照起来看,前面的是在深度方向上进行叠加,而这个方法是在水平方向上进行叠加,首先看一下使用参数。

  • tensors:要拼接的tensor序列。
  • out:输出tensor。

此方法对一维的tensor沿着第一维进行拼接,而对其它维度的tensor沿着第二维进行拼接。

首先来看一个例子:

>>> a = torch.tensor([1, 2, 3])
>>> b = torch.tensor([4, 5, 6])
>>> torch.hstack((a,b))
tensor([1, 2, 3, 4, 5, 6])
>>> a = torch.tensor([[1],[2],[3]])
>>> b = torch.tensor([[4],[5],[6]])
>>> torch.hstack((a,b))
tensor([[1, 4],
        [2, 5],
        [3, 6]])

可以看到,对于一维的tensor,确实是在水平方向直接进行了拼接。而在二维的tensor上是在第二个维度进行了拼接,接下里我们看在三维上的情况。
在这里插入图片描述

  • 可以看到确实是对第二维进行了拼接,例如c中的
    [[0.9646, 0.6254, 0.5185, 0.3193],
    [0.3248, 0.8872, 0.1793, 0.6818],
    [0.6927, 0.9157, 0.2554, 0.0317],
    [0.3084, 0.6268, 0.0684, 0.9537],
    [0.1824, 0.1292, 0.9219, 0.2265],
    [0.0826, 0.5043, 0.2404, 0.3039]]
    直接等于a中的第二维中的第一个元素:
    [[0.9646, 0.6254, 0.5185, 0.3193],
    [0.3248, 0.8872, 0.1793, 0.6818],
    [0.6927, 0.9157, 0.2554, 0.0317]]
    与b中的第二维中的第一个元素:
    [[0.3084, 0.6268, 0.0684, 0.9537],
    [0.1824, 0.1292, 0.9219, 0.2265],
    [0.0826, 0.5043, 0.2404, 0.3039]]
    直接进行拼接,以此类推。

  • 所以此方法要求被拼接的tensors必须在第二个维度的长度相等,其余可以并且,并且在第二个维度上结果tensor的长度等于拼接tensors长度之和。

而在torch.dstack()中,这个是在第三维进行的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值