Keras 如何在pretrain模型中的每个conv2d层之后循环添加BatchNormalization

Keras 如何在pretrain模型中的每个conv2d层之后循环添加BatchNormalization,keras,deep-learning,Keras,Deep Learning,我有一个来自keras的pretrain模型(vgg16)。我试图通过循环在每个conv2d之后添加BatchNormalization层。然而,似乎我不能把它们全部放在一起。这是我的密码 from keras.applications import VGG16 from keras.layers import BatchNormalization, Input from keras.models import Model input_tensor = Input(shape=(256, 25

我有一个来自keras的pretrain模型(vgg16)。我试图通过循环在每个conv2d之后添加BatchNormalization层。然而,似乎我不能把它们全部放在一起。这是我的密码

from keras.applications import VGG16
from keras.layers import BatchNormalization, Input
from keras.models import Model

input_tensor = Input(shape=(256, 256, 3))
pretrain = VGG16(weights="imagenet", include_top=False, input_tensor=input_tensor)

            model = pretrain.layers[0].input
            for i in range(len(pretrain.layers)):
                x = pretrain.layers[i].output
                if "conv" in pretrain.layers[i].name:
                    x = pretrain.layers[i].output
                    x = BatchNormalization(axis=-1)(x)

                model = Model(input=model.input, output=x)

你能给我一些建议吗?提前感谢您

您应该通过复制VGG中的图层并在需要的地方添加自己的图层来构建新模型

现在的问题是conv.层连接到批处理规范,但它们没有连接到任何东西