序列长度不同的Keras变分自动编码器

时间:2018-08-11 08:03:51

标签: python keras autoencoder

我想在Keras中实现一个完全卷积的VAE,它应该能够计算不同长度的一维音频序列。我粗略地遵循了https://blog.keras.io/building-autoencoders-in-keras.html的教程,这在开始时非常有帮助。但是,查看构建潜在矢量的采样方法时,您会发现它固定于形状(批处理,latent_dim):

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

在训练期间这不是问题,因为我可以使用固定尺寸(batch_size,sequence_length,1)进行训练,这将导致潜在空间的(batch_size,1,latent_dim)。但是,当使用训练有素的网络时,我希望能够将形状为(batch_size,N * sample_size,1)的输入作为输入,结果将是(batch_size,N,latent_dim)。问题是对K.random_normal的调用,该调用仅接受整数作为其shape参数,因此我无法传递类似(None,None,latent_dim)之类的东西,如果我没记错的话,这可能在TensorFlow中实现,我顺便说一下作为后端。

反正有做到这一点吗?

0 个答案:

没有答案