【发布时间】:2019-07-29 20:33:18
【问题描述】:
我正在努力理解 Erik Linder-Norén 的 implementation of the Categorical GAN model,但对该模型中的生成器感到困惑:
def build_generator(self):
model = Sequential()
# ...some lines removed...
model.add(Dense(np.prod(self.img_shape), activation='tanh'))
model.add(Reshape(self.img_shape))
model.summary()
noise = Input(shape=(self.latent_dim,))
label = Input(shape=(1,), dtype='int32')
label_embedding = Flatten()(Embedding(self.num_classes, self.latent_dim)(label))
model_input = multiply([noise, label_embedding])
img = model(model_input)
return Model([noise, label], img)
我的问题是:Embedding() 层在这里是如何工作的?
我知道noise 是一个长度为100 的向量,label 是一个整数,但我不明白label_embedding 对象包含什么或它在此处的作用。
我尝试打印label_embedding 的形状以尝试找出Embedding() 行中发生的情况,但返回(?,?)。
如果有人可以帮助我了解这里的 Embedding() 行是如何工作的,我将非常感谢他们的帮助!
【问题讨论】:
标签: python keras neural-network deep-learning generative-adversarial-network