Как заменить первые несколько слоев предварительно обученной нейронной сети в керасе? - PullRequest
0 голосов
/ 08 января 2019

Я пытаюсь использовать модель MobileNet, доступную в керасе. Но у моего входного изображения есть 5 каналов (в отличие от 3 каналов, которые поддерживает модель MobileNet). Я пытаюсь заменить существующий входной слой и первую операцию свертки, чтобы сохранить согласованность модели и использовать предварительно обученные веса.

Я пытался вытолкнуть первые 3 слоя MobileNet и заменить их пользовательскими слоями, но это не сработало.

model = MobileNet(include_top=False, pooling='avg')
model.layers.pop(0)
model.layers.pop(0)
model.layers.pop(0)

inp = Input(shape=(None,None,5))
conv = Conv2D(32,1,strides=(2,2))(inp)

model = model(conv)

model.summary()

Я пробовал что-то подобное выше, но это меня бросает

ValueError: number of input channels does not match corresponding dimension of filter, 
32 != 3

Буду признателен, если кто-нибудь укажет мне правильное направление.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...