You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在LibTorch中将(42,358)形状的张量扩展为(10,42,358)?

解决LibTorch中张量扩展/重复的参数错误问题

修复expand方法的参数错误

LibTorch的at::Tensor::expand方法要求传入IntArrayRef类型的目标形状,不能像Python版PyTorch那样直接传递多个独立参数。你需要把目标形状用花括号包裹成初始化列表,正确写法如下:

auto expanded_tensor = state_batch.expand({10, -1, -1});

这个操作和Python版逻辑一致,属于广播扩展,不会额外复制数据,仅改变张量的视图。

实现真实的重复拼接(非广播)

如果你的需求是将原张量在第一个维度上真实重复10次(而非仅逻辑扩展),推荐使用repeat方法,同样传入IntArrayRef类型的重复次数参数:

auto repeated_tensor = state_batch.repeat({10, 1, 1});

这里{10, 1, 1}表示第一个维度重复10次,后两个维度保持原次数不变,最终得到形状为(10, 42, 358)的张量,且数据是真实复制的,无需用torch::cat循环实现。

内容的提问来源于stack exchange,提问作者Ant

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 09:10:23