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

Matlab运行bsxfun报错:输入数组非单例维度不匹配求助

解决MatConvNet中bsxfun维度不匹配报错

问题核心是两个输入的维度不兼容:

  • 你的im_是227×227×3的三维数组(高度×宽度×通道数)
  • net.meta.normalization.averageImage是3×1的列向量(通道数×1)

bsxfun要求非单例维度必须完全匹配,当前两者的维度无法进行广播运算,因此抛出错误。

修复方案

将averageImage的维度调整为1×1×3,使其与im_的通道维度对齐,即可完成逐通道减均值操作:

% 调整均值向量维度为1×1×3
mean_image = reshape(net.meta.normalization.averageImage, 1, 1, 3);
% 执行减均值操作(新版MATLAB可直接用im_ = im_ - mean_image,无需bsxfun)
im_ = bsxfun(@minus, im_, mean_image);

补充说明

官方示例中averageImage的维度应为1×1×3,可能是你加载的AlexNet模型在归一化参数存储格式上有差异,通过reshape调整维度即可兼容示例代码逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 14:31:57