我正在尝试在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”
答案 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())