尝试将密集层附加到vgg19网络

时间:2019-11-29 07:58:18

标签: python tensorflow keras

我正在尝试在vgg19网络上附加一个密集层,但这给了我以下错误。有人可以帮我吗?

import tensorflow 
from tensorflow.keras.applications.vgg19 import VGG19 
model = VGG19()  
x = tensorflow.keras.layers.Dense(10,
activation="relu",name="",trainable=True)(model.layers[-1]) 
model = tensorflow.keras.Model(inputs = model.layers[0], outputs = x)
  

Python 3.7.0(默认值,2018年6月28日,07:39:16)输入“ copyright”,   “信用”或“许可证”以获取更多信息。

     

IPython 7.8.0-增强的交互式Python。

     

runfile('/ Users / sadegh / Dropbox / Moosavi Khorzooghi-04 / test',   wdir ='/ Users / sadegh / Dropbox / Moosavi Khorzooghi-04')2019-11-29   01:51:22.516366:我tensorflow / core / platform / cpu_feature_guard.cc:142]   您的CPU支持该TensorFlow二进制文件未包含的指令   编译使用:AVX2 FMA 2019-11-29 01:51:22.526913:I   tensorflow / compiler / xla / service / service.cc:168] XLA服务   0x7fc84c7a2700在平台主机上执行计算。设备:   2019-11-29 01:51:22.526926:我   tensorflow / compiler / xla / service / service.cc:175] StreamExecutor   设备(0):主机,默认版本回溯(最近一次通话):

     

文件“”,第1行,在       runfile('/ Users / sadegh / Dropbox / Moosavi Khorzooghi-04 / test',wdir ='/ Users / sadegh / Dropbox / Moosavi Khorzooghi-04')

     

文件   “ /opt/anaconda3/lib/python3.7/site-packages/spyder_kernels/customize/spydercustomize.py”,   运行文件中的第827行       execfile(文件名,命名空间)

     

文件   “ /opt/anaconda3/lib/python3.7/site-packages/spyder_kernels/customize/spydercustomize.py”,   第110行,在execfile中       exec(compile(f.read(),文件名,'exec'),命名空间)

     

文件“ / Users / sadegh / Dropbox / Moosavi Khorzooghi-04 / test”,第11行,在          x = tensorflow.keras.layers.Dense(10,activation =“ relu”,name =“”,trainable = True)(model.layers [-1])

     

文件   “ /opt/anaconda3/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/base_layer.py”,   第887行,致电       self._maybe_build(inputs)

     

文件   “ /opt/anaconda3/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/base_layer.py”,   _maybe_build中的第2122行       self.input_spec,输入,self.name)

     

文件   “ /opt/anaconda3/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/input_spec.py”,   第163行,在assert_input_compatibility中       如果x.shape.ndims为None:

     

AttributeError:“密集”对象没有属性“ shape”

1 个答案:

答案 0 :(得分:0)

因此,假设这是分类问题,则应在输出层中使用softmax激活而不是relu。您还可以访问主干VGG19模型的输入和输出。如果使用默认设置实例化基础模型的输出,则应该手动合并或展平基础模型的输出。相反,您可以分别为全局平均池或最大池设置pooling="avg" or pooling="max"。此外,您可以使用类似以下的内容:

base_model = VGG19(input_shape=(224, 224, 3), weights='imagenet', pooling="avg", include_top=False)
x = Dense(10, activation="softmax", name="output")(base_model.output)
model = Model(inputs=base_model.input, outputs=x)
print(model.summary())