Niyantha pandiyan
Niyantha pandiyan

Reputation: 31

Input 0 of layer fc1 is incompatible with the layer: expected axis -1 of input shape to have value 25088 but received input with shape (None, 32768)

I'm implementing SRGAN (and am not very experienced in this field), which uses a pre-trained VGG19 model to extract features. The following code was working fine on Keras 2.1.2 and tf 1.15.0 till yesterday. then it started throwing an "AttributeError: module 'keras.utils.generic_utils' has no attribute 'populate_dict_with_module_objects'" So i updated the keras version to 2.4.3 and tf to 2.5.0. but then its showing a "Input 0 of layer fc1 is incompatible with the layer: expected axis -1 of input shape to have value 25088 but received input with shape (None, 32768)" on the following line

features = vgg(input_layer)

But here the input has to be (256,256,3). I had downgraded the keras and tf versions to the one I mentioned before to get rid of this error in the first place and it was working well till yesterday. changing the input shape to (224,224,3) does not work. Any help in solving this error will be very appreciated.

import glob
import time

import matplotlib.pyplot as plt
import numpy as np
import tensorflow as tf
import keras
from keras.layers import Input
from keras.applications.vgg19 import VGG19
from keras.callbacks import TensorBoard
from keras.layers import BatchNormalization, Activation, LeakyReLU, Add, Dense,Flatten
from keras.layers.convolutional import Conv2D, UpSampling2D
from keras.models import Model
from keras.optimizers import Adam
from scipy.misc import imread, imresize
from PIL import Image

def build_vgg():
   
   
    input_shape = (256, 256, 3)
    vgg = VGG19(weights="imagenet")
    vgg.outputs = [vgg.layers[9].output]
    input_layer = Input(shape=input_shape)
    features = vgg(input_layer)    
    model = Model(inputs=[input_layer], outputs=[features])
    return model

vgg = build_vgg()
vgg.trainable = False
vgg.compile(loss='mse', optimizer=common_optimizer, metrics=['accuracy'])

# Build and compile the discriminator
discriminator = build_discriminator()
discriminator.compile(loss='mse', optimizer=common_optimizer, metrics=['accuracy'])

# Build the generator network
generator = build_generator()

The Error message

Im using google colab

Upvotes: 1

Views: 746

Answers (1)

Niyantha pandiyan
Niyantha pandiyan

Reputation: 31

Importing keras from tensorflow and setting include_top=False in

vgg = VGG19(weights="imagenet",include_top=False)

seems to work.

Upvotes: 2

Related Questions