【动手学深度学习】关于torch.cat

部署运行你感兴趣的模型镜像

X_train = torch.cat([X_train, X_part], 0)

这行代码使用PyTorch的torch.cat()函数来连接张量,详细解释:

函数语法

torch.cat(tensors, dim=0)
  • tensors: 要连接的张量列表

  • dim: 指定沿哪个维度进行连接

代码含义

X_train = torch.cat([X_train, X_part], 0)

这表示:

  • 将现有的 X_train 和新的 X_part 两个张量连接起来

  • 沿第0维(通常是行维度)进行连接

  • 结果赋值回 X_train(相当于向训练集中添加新数据)

维度说明

对于2D张量(最常见情况):

# 假设形状:
X_train.shape = (100, 10)  # 100个样本,每个10个特征
X_part.shape = (50, 10)    # 50个样本,每个10个特征

# 连接后:
result = torch.cat([X_train, X_part], 0)
result.shape = (150, 10)   # 样本数增加,特征数不变

不同维度的效果

# 沿不同维度连接的例子
A = torch.tensor([[1, 2], [3, 4]])
B = torch.tensor([[5, 6], [7, 8]])

# 沿第0维连接(垂直堆叠)
torch.cat([A, B], 0)
# 输出:tensor([[1, 2],
#               [3, 4],
#               [5, 6],
#               [7, 8]])

# 沿第1维连接(水平堆叠)
torch.cat([A, B], 1)
# 输出:tensor([[1, 2, 5, 6],
#               [3, 4, 7, 8]])

实际应用场景

这种操作常见于:

  1. 数据增强:将新生成的数据添加到训练集

  2. 批量处理:合并多个小批次的数据

  3. 增量学习:逐步向训练集添加新数据

  4. 数据预处理:合并多个数据源

注意事项

  • 除了连接维度外,其他维度的大小必须相同

  • 这里使用 0 表示第一个维度(在PyTorch中通常是批次维度)

  • 这种操作会创建新的张量,原有张量不变

这个操作在机器学习中非常常见,特别是在动态构建训练数据集时!

您可能感兴趣的与本文相关的镜像

PyTorch 2.8

PyTorch 2.8

PyTorch
Cuda

PyTorch 是一个开源的 Python 机器学习库,基于 Torch 库,底层由 C++ 实现,应用于人工智能领域,如计算机视觉和自然语言处理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值