如何在keras中产生单热输出?

时间:2018-04-29 02:12:31

标签: python keras

通常,不需要在神经网络中产生一个热矢量输出;但是,我正在尝试训练一个GAN,因此一个网络的输出需要匹配另一个网络的输入。目前我的生成器中的最后一层是一个密集的softmax,因此我在输出上有一个概率分布,但是我需要将该向量转换为一个热,因此它匹配鉴别器所期望的输入。使用keras似乎没有任何内置层。我试图写一个lambda表达式,但似乎无法让它工作。

现在是代码:

    s1 = Input(shape=(self.sentence_length,))

    embed = Embedding(output_dim=self.embedding_vector_length,
            input_dim=self.vocabulary_size,
            input_length=self.sentence_length)(s1)
    x = concatenate([embed,embed],axis=1)
    x = LSTM(self.latent_dimension,return_sequences=True)(x)
    x = LSTM(self.embedding_vector_length,return_sequences=True)(x)
    x = Lambda(lambda s: s[:,15:,:])(x)
    x = Dense(self.vocabulary_size,activation='softmax')(x)
    # x = Lambda(???)
    model = Model(s1,x)
    model.summary()

0 个答案:

没有答案