torch.cat 使用小节

torch.cat 使用小节

torch.cat 要求在所指定拼接维度之外的所有维度都要匹配,例如

python 复制代码
import torch
v1 = torch.tensor([[1, 2, 3], [4, 5, 6], [4, 5, 6]])  # 3*3
v2 = torch.tensor([[3, 6, 8]])  # 1*3
torch.cat([v1, v2], dim=1)

运行之后会报错

Sizes of tensors must match except in dimension 1. Expected size 3 but got size 1 for tensor number 1 in the list.

这就是因为这两个向量的第 0 个维度不相等,故无法完成 cat 操作,改成 dim=0 即可得到输出:

python 复制代码
tensor([[1, 2, 3],
        [4, 5, 6],
        [4, 5, 6],
        [3, 6, 8]])

这种操作实际上完成了多个 batch 间数据的合并,若想完成同个 batch 内数据的 cat,要保证第 0 个维度大小一致,即 batchsize 相等。

python 复制代码
import torch

v1 = torch.tensor([[1, 2, 3, 3], [4, 5, 6, 6]])  # 2*4
v2 = torch.tensor([[6, 6], [8, 8]])  # 1*3
torch.cat([v1, v2], dim=1)

可得到预期输出:

python 复制代码
tensor([[1, 2, 3, 3, 6, 6],
        [4, 5, 6, 6, 8, 8]])
相关推荐
rockingdingo2 分钟前
利用 OneKey MCP Router Python SDK构建多领域大模型Function Call多工具调用数据集
网络·windows·python·ai agent·mcp
Philtell3 分钟前
Ubuntu22.04 5080配置深度学习环境
人工智能·深度学习
我送炭你添花3 分钟前
Pelco KBD300A 模拟器:01.Pelco 协议前世今生 & KBD300A 键盘基础解析
网络·python·计算机外设·pyqt
Lethehong5 分钟前
首发实践:在昇腾NPU上从零部署与深度评测Mistral-7B-v0.3全流程
人工智能·pytorch·python·昇腾atlas 800t·mistral-7b-v0.3
Francek Chen7 分钟前
【自然语言处理】应用01:情感分析及数据集
人工智能·pytorch·深度学习·自然语言处理
qq_356196959 分钟前
day35文件的规范拆分和写法@浙大疏锦行
python
胡桃不是夹子12 分钟前
安装deb文件并加入到菜单
python
黑客思维者20 分钟前
PyAutoGUI 模拟鼠标键盘:原理解析 + 工程实践案例 + 踩坑指南
python·pyautogui
努力的BigJiang21 分钟前
D435i相机-使用红外双目模式记录
python
旧梦吟22 分钟前
脚本 手机跑.简易go服务器
python·golang·css3