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

ONNX目标检测模型C++部署:输出维度[-1,4]异常问题排查

ONNX模型C++部署:输出张量维度获取异常排查

你当前的代码直接用std::cout输出std::vector<int64_t>类型的outputDims,这是导致输出异常的核心原因——C++标准库并没有为std::vector提供默认的流输出重载,所以你看到的不是实际的维度数值,而是容器的内存地址或乱码内容。

修复代码示例

把输出逻辑改成遍历vector逐个打印维度值:

std::vector<int64_t> outputDims = outputTensorInfo.GetShape();
std::cout << "Output Dimensions: ";
for (const auto dim : outputDims) {
    std::cout << dim << " ";
}
std::cout << std::endl;

额外排查方向

如果修复输出后,维度仍然不符合预期(比如还是出现-1或者错误数值),需要确认:

  • 模型是否已经完成推理:动态维度(比如-1代表的动态batch size)只有在执行推理、传入实际输入后才会被填充为具体数值,仅加载模型时获取的可能是静态定义的维度模板。
  • 输入张量的维度是否匹配模型要求:如果输入的batch size、通道数等不符合模型定义,可能导致输出维度计算异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 15:05:58