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

AveragePooling2D无法识别dtype报错问题求助

解决AveragePooling2D使用时的张量输入错误

嘿,我一眼就揪出你代码里的问题啦!你这里踩了个很容易忽略的小细节:

  • 你写的x = base_model.outputs里,outputs是返回模型所有输出的列表(哪怕模型只有一个输出,它也会被包在列表里),而AveragePooling2D层需要接收单个张量作为输入,直接把列表传进去肯定会触发错误。

修正方法特别简单,把outputs改成单数的output就行,它会直接返回模型的单个输出张量:

from keras.models import Sequential, Model
from keras.layers import Dense, Dropout, Activation, Flatten
from keras.layers import Convolution2D, MaxPooling2D, ZeroPadding2D, GlobalAveragePooling2D, AveragePooling2D
from keras.applications.inception_v3 import InceptionV3
from keras.layers import Input
import keras.backend as K
import math

K.clear_session()
base_model = InceptionV3(weights='imagenet', include_top=False, input_tensor=Input(shape=(150, 150, 3)))
x = base_model.output  # 这里把outputs改成output
x = AveragePooling2D(pool_size=(8, 8))(x)

额外提个小提醒:如果你的模型真的是多输出结构(比如自定义的多任务模型),那你需要从outputs列表里取出对应的单个张量再传入池化层,但InceptionV3默认是单输出结构,所以用base_model.output就完全没问题啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:04:28