通常,不需要在神经网络中产生一个热向量输出;然而,我正在尝试训练 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()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1804 次 |
| 最近记录: |