python - Keras:了解嵌入层在条件 GAN 中的作用
问题描述
我正在努力了解 Erik Linder-Norén 的分类 GAN 模型的实现,并且对该模型中的生成器感到困惑:
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()
这里的线路是如何工作的,我将非常感谢他们的帮助!
解决方案
要记住为什么在这里使用嵌入:另一种方法是将噪声与条件类连接起来,这可能会导致生成器完全忽略噪声值,在每个类中生成具有高相似性的数据(甚至每个类只有 1 个) )。
推荐阅读
- scala - Spark Scala - 从另一个视图中选择日期和日期 + 24 小时之间的所有记录
- r - 如何使用 R/传单在地图中绘制单个数据点?
- java - 在java中同时倒计时多件事
- java - 阻止 Swing 弹出窗口失去焦点并关闭
- pandas - 如何选择分类变量?
- forms - 从 Oracle Apex 中的文件浏览器项字段中捕获文件名
- javascript - 路由问题并重新渲染 React 组件
- java - Android 上 WebRTC 的自定义视频源
- android-studio - 移动包文件夹后无法构建Android项目
- javascript - Javascript - 检查字符串是否是有效的 CSS 编号