torch.stack(input, dim)的size变化

import numpy as np
import torch

a = np.arange(2 * 3 * 20 * 20).reshape(2, 3, 20, 20)
array1 = torch.tensor(a)
tensor_list = []
np_list = []
for i in range(4):
    tensor_list.append(array1)
    np_list.append(a)

dim0 = torch.stack(tensor_list, dim=0)
dim1 = torch.stack(tensor_list, dim=1)
dim2 = torch.stack(tensor_list, dim=2)
dim3 = torch.stack(tensor_list, dim=3)
dim4 = torch.stack(tensor_list, dim=4)
np_list = torch.tensor(np_list)
print(np_list.size())
print(dim0.size())
print(dim1.size())
print(dim2.size())
print(dim3.size())
print(dim4.size())

输出

# 变化前
torch.Size([4, 2, 3, 20, 20])
# 变化后
torch.Size([4, 2, 3, 20, 20])
torch.Size([2, 4, 3, 20, 20])
torch.Size([2, 3, 4, 20, 20])
torch.Size([2, 3, 20, 4, 20])
torch.Size([2, 3, 20, 20, 4])

相当于将dim指定的那个维度后面的都不动,然后将dim=0换到指定的dim上,剩下的dim=1到指定的dim向前移动一位。
假设size是【4,2,3,20,20】
令函数的dim=3,那么输出的size是【2,3,20,4,20】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值