首页 > 解决方案 > 删除keras模型中的前n层

问题描述

我有以下 ResNet18 网络,我想用 ConvLSTM2D 层替换第一个卷积 (Conv2D) 层。从我目前的研究来看,我认为最好的选择是删除前三层(0、1、2)并用 ConvLSTM2D 替换第 3 层(Conv2D 层)。但是,我找不到删除第一层的方法。

from keras.models import Sequential, Model
from classification_models.keras import Classifiers
from keras.layers import Dense, Conv2D, MaxPooling2D, AvgPool2D, Input, Dropout, Flatten, BatchNormalization, ConvLSTM2D

im_size = 170

ResNet18, preprocess_input = Classifiers.get('resnet18')
resnet = ResNet18((im_size, im_size, 3), include_top=False)
headModel = keras.layers.pooling.AveragePooling2D(pool_size=(3,3))(resnet.output)
headModel = Flatten(name="flatten")(headModel)
headModel = Dense(256, activation="relu")(headModel)
headModel = Dropout(0.5)(headModel)
headModel = Dense(1, activation="sigmoid")(headModel)
model = Model(inputs=resnet.input, outputs=headModel)

标签: keras

解决方案


推荐阅读