Python AveragePoolg2D无法识别数据类型
我对AveragePoolg2D有一个问题:Python AveragePoolg2D无法识别数据类型,python,python-3.x,tensorflow,keras,Python,Python 3.x,Tensorflow,Keras,我对AveragePoolg2D有一个问题: from keras.models import Sequential, Model from keras.layers import Dense, Dropout, Activation, Flatten from keras.layers import Convolution2D, MaxPooling2D, ZeroPadding2D, GlobalAveragePooling2D, AveragePooling2D import keras.
from keras.models import Sequential, Model
from keras.layers import Dense, Dropout, Activation, Flatten
from keras.layers import Convolution2D, MaxPooling2D, ZeroPadding2D, GlobalAveragePooling2D, AveragePooling2D
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.outputs
x = AveragePooling2D(pool_size=(8, 8))(x)
我得到一个错误:
AttributeError回溯最近的呼叫
最后的
~/anaconda3/lib/python3.6/site-packages/keras/engine/topology.py in
callself,输入,**kwargs
617
618实际调用层,收集输出、遮罩和形状。
->619输出=self.callinputs,**kwargs
620输出屏蔽=自计算屏蔽,上一个屏蔽
621
~/anaconda3/lib/python3.6/site-packages/keras/layers/pooling.py in
callself,输入
156步幅=自我步幅,
157 padding=自填充,
->158数据_格式=self.data_格式
159返回输出
一百六十
~/anaconda3/lib/python3.6/site-packages/keras/layers/pooling.py in
_池功能自身、输入、池大小、跨步、填充、数据格式
273填充,数据格式:
274输出=K.pool2dinputs,pool_大小,步长,
->275填充,数据格式,池模式='avg'
276返回输出
277
~/anaconda3/lib/python3.6/site-packages/keras/backend/tensorflow_backend.py
在pool2dx中,池大小、跨步、填充、数据格式、池模式
3643提升值错误“未知数据格式:”+
标准数据格式3644
->3645 x,tf_数据_格式=_预处理_conv2d_输入,数据_格式3646填充=_预处理_填充填充
3647如果tf_数据_格式='NHWC':
~/anaconda3/lib/python3.6/site-packages/keras/backend/tensorflow_backend.py
在预处理conv2d输入中,数据格式3202是张量。
3203
->3204如果dtypex='float64':3205 x=tf.castx,'float32'3206 tf_数据_格式='NHWC'
~/anaconda3/lib/python3.6/site-packages/keras/backend/tensorflow_backend.py
在dtypex中
640 ```
641
->642返回x.dtype.base\u dtype.name
643
644
AttributeError:“list”对象没有属性“dtype”
但如果我打印X,这就是我得到的结果:
tf.张量'mixed10/concat:0'形状=?,3,3,2048数据类型=float32
所以基本上x的数据类型是float32,但AveragePoolg2D无法识别,因为我理解正确。有人能告诉我解决这个问题的方法吗?只要去掉“s”:
x = base_model.output
这是因为输出为您提供了一个输出列表。由于在这种情况下只有一个输出,所以输出对您来说很好。否则,您必须从该列表中进行选择