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

OpenVINO 2022.1中VGG16模型输入形状转换报错求助

问题解答

错误含义解析

Cannot infer shapes or values for node "fc6/WithoutBiases" 错误的核心原因是输入形状修改后,模型特征图尺寸与全连接层的固定输入维度不匹配:

  • VGG16的fc6是全连接层,原设计基于输入尺寸224x224:经过5轮卷积+池化(每轮池化步长为2,总下采样倍数32),最终生成的特征图尺寸为7x7,对应fc6的输入神经元数为7*7*512=25088,这是固定值。
  • 当你将输入改为300x300时,经过相同池化操作后,特征图尺寸为300/32=9.375(非整数),无法与fc6的固定输入维度对齐,导致模型优化器无法完成形状推断。

OpenVINO对全连接层的支持

OpenVINO完全支持全连接层,全连接层是OpenVINO IR(中间表示)格式原生兼容的层类型。你的问题并非源于不支持,而是输入形状修改后与原模型的结构设计冲突。

解决方法

针对你的需求,提供两种可行方案:

方案1:调整输入尺寸为兼容值

选择能被32整除的输入尺寸(匹配VGG16的总下采样倍数),例如256x256、320x320等。修改后的模型优化器命令示例:

mo --input_model <path_to_model_directory>\vgg16.caffemodel --input data --input_shape [2,3,320,320] -o <path_to_vgg16_fp32_optimized_model_directory>

此时特征图尺寸为320/32=10x10,需同步编辑Caffe模型的prototxt文件,将fc6的输入维度调整为10*10*512=51200,再配合原caffemodel文件运行优化器。

方案2:将全连接层转换为卷积层

全连接层可等价转换为对应尺寸的卷积层,从而支持任意输入尺寸:

  1. 编辑VGG16的Caffe prototxt文件:
    • 将fc6层替换为卷积层:设置type: "Convolution",kernel_size: 7,stride: 1,num_output: 4096,移除全连接层的inner_product相关参数。
    • 同理,将fc7替换为kernel_size:1、num_output:4096的卷积层,fc8替换为对应输出类别的1×1卷积层。
  2. 使用修改后的prototxt与原caffemodel文件,运行你之前的模型优化器命令即可。

内容的提问来源于stack exchange,提问作者Md Maksud-Ul-Kabir Rico

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 16:03:10