Ich versuche, das VGG16-Modell für ein Dataset mit verschiedenen Klassen anzupassen. Nach this example, habe ich versucht, es so zu tun:Fehler "Modellobjekt hat kein Attribut 'get_shape'" - Feineinstellung von Keras-Modell
from keras.applications.vgg16 import VGG16
from keras.models import Model
from keras.layers import Dense, GlobalAveragePooling2D
from keras import backend as K
pretrained = VGG16(include_top=False, weights='imagenet')
model = pretrained.output
# Add new layers here
model = Model(inputs=pretrained.input, outputs=model)
Aber ich habe Probleme mit neuen Schichten auf das Modell. Im Anschluss an die Linie model = pretrained.output
, ich habe jede der folgenden Zeilen versucht (einen nach dem anderen):
model = Flatten()(pretrained)
model = MaxPooling2D((2,2), strides=(2,2))(pretrained)
model = Dense(1024, activation='relu')(model)
model = Convolution2D(32, 3, 3)(model)
model = GlobalAveragePooling2D()(x)
Für die ersten beiden Zeilen, die ich versuchte, bekam ich den Fehler
AttributeError: 'Model' object has no attribute 'get_shape'
Als ich jeden versuchte von den letzten drei Zeilen, jedes Mal, wenn ich einen Fehler bezüglich der Größe der Ebene, z die Linie model = Convolution2D(32, 3, 3)(model)
gab mir:
Error when checking target: expected conv2d_1 to have 4 dimensions, but got array with shape (38, 100)
Wie behebe ich diese Fehler? Und ganz allgemein: Woher weiß ich, welche Arten von Layern ich an ein Faltungsmodell anhängen kann?