删除输出层的某些神经元(Keras)

时间:2018-11-28 01:12:43

标签: python tensorflow keras generative-adversarial-network

我正在使用Keras制作GAN来生成合成数据。因此,我想使用预先处理过的分类器模型作为鉴别器(因为我不必训练鉴别器,只需训练生成器)。

经过预处理的模型是在keras中制成的,在最后一层Dense(4, activation='softmax')(A,B,C,D)具有原始4个输出。我要从类C生成综合数据。Discriminator模型必须只有1个输出(伪或真),因此我需要将Treinade模型的最后一层更改为仅C输出。那么,我该如何在keras中或者在后端使用Tensorflow呢?

我正在寻找这样的东西...

enter image description here

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

1 个答案:

答案 0 :(得分:0)

您将必须执行以下操作:

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])