首页 文章

AveragePooling2D无法识别dtype

提问于
浏览
0

我有一个AveragePooling2D的问题:

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 Traceback(最近一次调用last)in()〜/ anaconda3 / lib / python3.6 / site-packages / keras / engine / topology.py in call(self,inputs,** kwargs)617 618#实际上调用层,收集输出,掩模和形状 . - > 619 output = self.call(inputs,** kwargs)620 output_mask = self.compute_mask(inputs,previous_mask)621~ / anaconda3 / lib / python3.6 / site-packages / keras / layers / pooling.py in call(self,inputs)156 strides = self.strides,157 padding = self.padding, - > 158 data_format = self.data_format)159 return output 160~ / anaconda3 / lib / python3.6 / site-packages / keras / _pooling_function中的layers / pooling.py(self,inputs,pool_size,strides,padding,data_format)273 padding,data_format):274 output = K.pool2d(inputs,pool_size,strides, - > 275 padding,data_format,pool_mode =' avg')276返回输出277~ / anaconda3 / lib / python3.6 / site2ks / keras / backend / tensorflow_backend.py in pool2d(x,pool_size,strides,padding,data_format,pool_mode)3643引发ValueError('未知data_format :'str(data_format))3644 - > 3645 x,tf_data_format = _preprocess_conv2d_input(x,data_format)3646 padding = _preprocess_padding(padding)3647 if tf_data_format =='NHWC':〜/ anaconda3 / lib / python3.6 / site-packages / keras / b _preprocess_conv2d_input(x,data_format)中的ackend / tensorflow_backend.py 3202张量 . 3203“”“ - > 3204 if dtype(x)=='float64':3205 x = tf.cast(x,'float32')3206 tf_data_format ='NHWC'~ / anaconda3 / lib / python3.6 / site-packages dtype(x)640中的/keras/backend/tensorflow_backend.py```641“”“ - > 642返回x.dtype.base_dtype.name 643 644 AttributeError:'list'对象没有属性'dtype'

但如果我打印(x)这是我得到的结果:

tf.Tensor'mixed10 / concat:0'shape =(?,3,3,2048)dtype = float32

所以基本上“x”有一个dtype是float32但是AveragePooling2D不能识别它,因为我理解正确 . 谁能指出我在哪里寻找解决这个问题?

1 回答

  • 1

    只需删除's':

    x = base_model.output
    

    那是因为 outputs 为您提供了输出列表 . 因为在这种情况下你只有一个, output 适合你 . 否则你必须从这个列表中选择 .

相关问题