【问题标题】:Delete some neurons at output layer (Keras)在输出层删除一些神经元(Keras)
【发布时间】:2018-11-28 22:18:06
【问题描述】:

我正在使用 Keras 制作用于生成合成数据的 GAN。所以,我想使用一个预先训练好的分类器模型作为鉴别器(因为我不必训练鉴别器,只需要训练生成器)。

预训练模型是在 keras 中制作的,在最后一层 Dense(4, activation='softmax')(A、B、C、D)有 4 个原始输出。我想从 C 类生成合成数据。鉴别器模型必须只有 1 个输出(假的或真的),所以我需要将 pre-treinade 模型的最后一层更改为只有 C 输出。那么,我如何在 keras 中做到这一点,或者在后端使用 Tensorflow?

我看起来像这样......

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

【问题讨论】:

标签: python tensorflow keras generative-adversarial-network


【解决方案1】:

你将不得不做这样的事情:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-06
    • 2021-09-22
    • 2018-08-16
    • 1970-01-01
    • 2018-08-03
    • 2015-11-02
    • 2017-07-03
    • 2018-02-02
    相关资源
    最近更新 更多