360网站建设服务,漳州专业网站建设,wordpress中文版会员中心,网站风格代码目录
1. torch.cat(tensors, dim)
2. torch.stack(tensors, dim)
3. 两者不同 torch.cat() 和 torch.stack()常用来进行张量的拼接#xff0c;在神经网络里经常用到。且前段时间有一个面试官也问到了这个知识点#xff0c;虽然内容很小很细#xff0c;但需要了解。
1. t…目录
1. torch.cat(tensors, dim)
2. torch.stack(tensors, dim)
3. 两者不同 torch.cat() 和 torch.stack()常用来进行张量的拼接在神经网络里经常用到。且前段时间有一个面试官也问到了这个知识点虽然内容很小很细但需要了解。
1. torch.cat(tensors, dim)
tensors待拼接的多个张量可用list, tuple表示dim待拼接的维度默认是0注意tensors里不同张量对应的待拼接维度的size可以不一致但是其他维度的size要保持一致。如代码中待拼接维度是0x和y对应的维度0上的值不一样但是其他维度上的值(维度1上的值)要保持一致即都为4否则会报错。 示例新生成的tensor在dim0这个维度进行了拼接即 3 2 5剩余维度保持不变
x torch.rand(3, 4)
y torch.rand(2, 4)
xy torch.cat([x, y], dim0)
print(xy.shape) # torch.Size([5, 4])
2. torch.stack(tensors, dim)
tensors待拼接的多个张量可用list, tuple表示dim待拼接的维度默认是0注意tensors里所有张量的维度要保持一致否则会报错 x torch.rand(7, 4)
y torch.rand(7, 4)
z torch.rand(7, 4)
xy torch.stack([x, y, z])
print(xy.shape) # torch.Size([3, 7, 4])
3. 两者不同
从上面的代码结果可看出两者区别
torch.cat会在dim的维度上进行合并不会扩展出新的维度。torch.stack则会在dim的维度上拓展出一个新的维度然后进行拼接该维度的大小为tensors的个数