Ryan
Ryan

Reputation: 10099

Matrix size incompatible keras

This is my model

    model = VGG16(include_top=False, input_shape=(224, 224, 3))
    x = Flatten()(model.outputs)
    x = Dense(512)(x)
    x = Activation('relu')(x)
    x = Dropout(0.5)(x)
    output1 = Dense(1, activation = 'sigmoid')(x)
    output2 = Dense(1, activation = 'sigmoid')(x)
    output3 = Dense(1, activation = 'sigmoid')(x)
    output4 = Dense(1, activation = 'sigmoid')(x)
    output5 = Dense(1, activation = 'sigmoid')(x)
    output6 = Dense(1, activation = 'sigmoid')(x)
    output7 = Dense(1, activation = 'sigmoid')(x)
    output8 = Dense(1, activation = 'sigmoid')(x)
    model = Model(model.inputs,[output1,output2,output3,output4,output5, output6, output7, output8])
    print(model.summary())
    model.compile(optimizers.rmsprop(lr = 0.0001, decay = 1e-6),
    loss = ["binary_crossentropy","binary_crossentropy","binary_crossentropy","binary_crossentropy", "binary_crossentropy","binary_crossentropy","binary_crossentropy","binary_crossentropy"],metrics = ["accuracy"])

But when i run this i get

InvalidArgumentError: Matrix size-incompatible: In[0]: [1,2508800], In[1]: [25088,512]
     [[{{node dense_45/MatMul}}]]
     [[{{node loss_3/dense_49_loss/Mean_3}}]]

Any suggestions to fix this will be really helpful,Thanks in advance.

Upvotes: 0

Views: 186

Answers (1)

Ryan
Ryan

Reputation: 10099

Fixed it by doing so

model = VGG16(include_top=False, input_shape=(224, 224, 3))
x = model.output
x = Flatten()(x)
x = Dense(512)(x)
x = Activation('relu')(x)
x = Dropout(0.5)(x)
output1 = Dense(1, activation = 'sigmoid')(x)
output2 = Dense(1, activation = 'sigmoid')(x)
output3 = Dense(1, activation = 'sigmoid')(x)
output4 = Dense(1, activation = 'sigmoid')(x)
output5 = Dense(1, activation = 'sigmoid')(x)
output6 = Dense(1, activation = 'sigmoid')(x)
output7 = Dense(1, activation = 'sigmoid')(x)
output8 = Dense(1, activation = 'sigmoid')(x)
model = Model(model.inputs,[output1,output2,output3,output4,output5, output6, output7, output8])
print(model.summary())
model.compile(optimizers.rmsprop(lr = 0.0001, decay = 1e-6),
loss = ["binary_crossentropy","binary_crossentropy","binary_crossentropy","binary_crossentropy", "binary_crossentropy","binary_crossentropy","binary_crossentropy","binary_crossentropy"],metrics = ["accuracy"])

Upvotes: 1

Related Questions