Удалить некоторые нейроны в выходном слое (Keras) - PullRequest
0 голосов
/ 28 ноября 2018

Я использую Keras для создания GAN для генерации синтетических данных.Итак, я хочу использовать предварительно обработанную модель классификатора как дискриминатор (потому что мне не нужно тренировать дискриминатор, только генератор).

Предварительно обработанная модель была изготовлена ​​в керасах и имеет 4 выхода на последнем слое Dense(4, activation='softmax') (A, B, C, D).Я хочу генерировать синтетические данные из класса C. Модель Discriminator должна иметь только 1 выходной сигнал (фальшивый или истинный), поэтому мне нужно изменить последний слой из модели до Treinade, чтобы он был только выходным кодом C.Итак, как я могу это сделать в кератах или, возможно, с помощью Tensorflow на бэкэнде?

Я выгляжу примерно так ...

enter image description here

model = load_model('pre_treined_model.h5')
discriminator = model
discriminator.layers[-1] = "only C weight/output"

1 Ответ

0 голосов
/ 28 ноября 2018

Вам нужно будет сделать что-то вроде этого:

model = load_model('pre_trained_model.h5')
model.layers.pop()

x = Dense(1, activation='sigmoid')(model.layers[-1].output)
model = Model(inputs=model.input, outputs=[x])
...