keras - 非图像/文本数据的 Keras VAE 示例
问题描述
我试图将此处给出的 VAE 示例https://blog.keras.io/building-autoencoders-in-keras.html调整为非图像/文本数据。
首先,我不明白的是以下函数中的“args”:
def sampling(args):
z_mean, z_log_sigma = args
epsilon = K.random_normal(shape=(batch_size, latent_dim),
mean=0., std=epsilon_std)
return z_mean + K.exp(z_log_sigma) * epsilon
另外,如何从 z = Lambda(sampling, output_shape=(latent_dim,))([z_mean,z_log_sigma]) 中随机采样一些点
输入解码器网络以生成新数据?
解决方案
首先,我不明白的是以下函数中的“args”:
args 是一个包含两个张量 (z_mean, z_log_sigma) 的元组。这些张量是编码器一分为二的输出。即解码器的输出被解释为正态分布的均值和对数方差。
如何从 z = Lambda(sampling, output_shape=(latent_dim,))([z_mean,z_log_sigma]) 中随机采样一些点
就是sampling
这样。它从正态分布中采样一个形状张量,(batch_size, latent_dim)
然后通过添加均值并乘以exp(log_sigma)
每个latent_dim 来对其进行缩放。
即假设latent_dim 为2,那么从正态分布中采样的随机值epsilon 被处理为sampled[0] = (random_values[:, 0] + z_mean[0]) * exp(z_log_sigmal[0])
与第1 列相同。
使用 VAE,编码器的输出被解释为高斯分布的参数。然后,采样函数使用这些参数通过转换正态分布采样过程的输出来为这些分布生成随机值。
推荐阅读
- exception - 何时使用 ResponseStatusException 和 ControllerAdvice
- java - Lucene - 基于前一个词的索引词
- php - Laravel 8:身份验证始终重定向回登录
- python - 在像素图上查找六边形的位置
- optimization - 通过根据每个任务的失败率概率对任务进行优先级排序来量化节省的总时间
- azure - Azure-Devops 服务主体触发器删除虚拟机规模集中的虚拟机
- powerbi - PowerBi - 同一个表中的不同分组
- vue-router - VueRouter 有时会更改 URL 但不会更改组件
- visual-studio-code - VisualCode - 远程连接 JupyterHub - 使用哪台机器?
- docker - 如果构建失败,如何将文件从构建容器复制(记录)到主机?