层 fc1 的输入 0 与层不兼容:输入形状的预期轴 -1 的值为 25088 但接收到的输入形状为 (None, 32768)

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)

我正在实现 SRGAN(我在这个领域不是很有经验),它使用预训练的 VGG19 模型来提取特征。直到昨天,以下代码在 Keras 2.1.2 和 tf 1.15.0 上运行良好。然后它开始抛出“AttributeError:模块'keras.utils.generic_utils'没有属性'populate_dict_with_module_objects'”所以我将keras版本更新为2.4.3 和 tf 到 2.5.0。但随后显示“层 fc1 的输入 0 与层不兼容:输入形状的预期轴 -1 的值为 25088 但接收到的输入形状为(None, 32768)" 在下一行

features = vgg(input_layer)

但是这里的输入必须是(256,256,3)。 我已经将 keras 和 tf 版本降级到我之前提到的版本,以首先消除这个错误,直到昨天它运行良好。 将输入形状更改为 (224,224,3) 不起作用。非常感谢任何解决此错误的帮助。

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

我正在使用 google colab

正在导入 keras from tensorflow 并在

中设置 include_top=False
vgg = VGG19(weights="imagenet",include_top=False)

似乎有效。