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

Я обучил модель, которая выглядит следующим образом:

Input -> Dense_1 -> Dense_2 -> Dense_3 -> Dense_4 -> Output

Я хочу извлечь модель, чтобы я мог передать ввод непосредственно в Dense_2, чтобы моя Модель выглядела как

Input (In the correct shape for Dense_2) -> Dense_2 -> Dense_3 -> Dense_4 -> Output

Все техники, которые я видел, инициализируют последовательную модель и объединяют модели вместе, например

Input -> Dense_1 -> Sequential

Но это не сработает для моего случая.

1 Ответ

1 голос
/ 05 апреля 2019

Это легко с функциональным API Keras.Сначала определите модель:

inp = Input(shape=(...))
d1 = Dense(..., name='d1')(inp)
d2 = Dense(..., name='d2')(d1)
d3 = Dense(..., name='d3')(d2)
out = Dense(..., name='d4')(d3)

model = Model(inp, out)

Затем получите ввод слоя и создайте новую модель.

inp_d2 = model.get_layer('d2').input

sub_model = Model(inp_d2, model.output)

Обратите внимание, как я помещаю имена слоев вручную, чтобы вы могли найти их, используя слойget_layer.

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