pytorch中cat和stack函数辨析

1.cat函数

pytorch中cat和stack函数辨析_第1张图片
将多个张量收尾拼接在一起,传入的参数dim决定是 按照哪一个规则 进行拼接
dim = 0按照行进行拼接。
原来是100行两列,现在是300行两列。
可以在你脑海中想一个Excel表格。

3个100行两列的表格按照行数进行拼接,变成了一个300行两列的表格。

由定义可知,显然,如果拼接的列数不对称,会报错。
pytorch中cat和stack函数辨析_第2张图片

然而,如果行数不相等,列数相等,则不会报错。
在这里插入图片描述

2.stack()函数

和cat()函数不同的是,stack()函数进行拼接的时候会新增加一个维度。
这个新增的维度是在哪个序号,由传入的din值决定。
pytorch中cat和stack函数辨析_第3张图片
原本f1是一维的,现在变成二维的了。
原来的
f1是
[…]
dim=0按照列拼接
a是
[…]
[… ]
[…]
三行100列,所以列数要相等

如果是cat的话,只能按照行拼接
从[…]变成[…]
不会增加维度

你可能感兴趣的:(stack,pytorch)