【发布时间】:2017-08-01 19:17:04
【问题描述】:
我在 Keras 中有两个顺序模型:
def generator_model():
model = Sequential()
model.add(LSTM(512, return_sequences=False, input_shape=(3, 100*100)))
model.add(Dense(100*100))
model.add(Reshape((1, 100, 100), input_shape=(100*100,)))
model.add(Activation('sigmoid'))
model.compile(optimizer='adadelta', loss='categorical_crossentropy');
return model
和
def discriminator_model():
model = Sequential()
model.add(LSTM(512, return_sequences=False, input_shape=(4, 100*100)))
model.add(Dense(100*100))
model.add(Dense(1))
model.add(Activation('sigmoid'))
model.compile(optimizer='adadelta', loss='categorical_crossentropy');
return model
我还具有将这些模型连接在一起的功能。我正在尝试用生成器和鉴别器作为 lstm 来训练生成对抗网络。这就是我需要这个功能的原因
def generator_containing_discriminator(generator, discriminator):
model = Sequential()
model.add(generator)
discriminator.trainable = False
model.add(discriminator)
return model
我用它来训练网络
g_loss = discriminator_on_generator.train_on_batch(noise, [1] * BATCH_SIZE)
discriminator.trainable = True
print("batch %d g_loss : %f" % (index, g_loss))
为了让训练的最后一个 sn-p 代码正常工作,生成器和判别器应该能够合并在一起。但是,我的生成器的输出无法输入到我的鉴别器中,因为我需要在生成器的输出中添加一些数据,然后再将其发送到鉴别器中。如何在 Keras 中执行此操作,以便将鉴别器添加到生成器中?有没有办法在model.add 函数中添加数据?我在 Keras 文档中找不到任何内容
【问题讨论】:
-
您的附加数据是什么样的?
-
我将生成器的输出重塑为 1x10000 矩阵,然后将其与其他 3 个 1x10000 矩阵连接。然后我将这个获得的矩阵和一个标签(1 或 0)传递给鉴别器来训练它。
-
那么您的
Reshape形状设置正确吗?
标签: python neural-network deep-learning keras recurrent-neural-network