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

ResNet152特征提取层参数差异及图像字幕模型in_features选型问题

两个in_features参数的核心区别
  • 官方ResNet152内置全连接层的in_features=2048:是模型结构本身决定的固定值。ResNet152最后一层卷积输出的特征通道数为2048,经过全局平均池化后会被压缩为维度是[batch_size, 2048]的全局特征向量,因此对应的全连接层输入维度必须是2048,是不可随意修改的原生参数。
  • 你自定义classifier的in_features=512:是你手动设置的数值,和ResNet152的实际特征输出维度不匹配,当前代码实际运行时会触发张量维度不匹配的报错,属于错误的参数设置。
图像字幕模型的参数选择

你当前的代码还存在一个逻辑问题:forward方法直接返回self.resnet152(x)的结果,这个结果是官方预训练ResNet152最后全连接层输出的1000维ImageNet分类结果,并不是你需要的图像特征,你需要先移除官方自带的全连接层才能拿到特征输出,修改参考:

# 去掉ResNet152的最后一层全连接层,仅保留特征提取部分
self.resnet152 = nn.Sequential(*list(self.resnet152.children())[:-1])

特征维度选择可以根据你的实现方案二选一:

  • 若使用全局图像特征输入解码器:直接用2048维的原始输出作为全连接层的输入,把自定义classifier的in_features改成2048,out_features设置为你需要的特征维度(比如你之前想要的512维),映射后再送给后续的文本生成模块即可。
  • 若使用带注意力的局部特征(当前图像字幕任务的主流方案,效果更好):可以移除ResNet152的全局平均池化层和全连接层,直接取最后一层卷积的输出,维度为[batch_size, 2048, 7, 7],拉平空间维度后得到49个2048维的局部特征,直接送给注意力模块使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 19:18:03