如何处理变分自动编码器(VAE)中的消失梯度问题?

时间:2018-09-17 10:12:38

标签: tensorflow neural-network conv-neural-network autoencoder

我知道有一些方法可以缓解梯度消失的问题,例如relu,批处理规范化,resnet。我已经尝试了前两个,但是我的网络仍然遇到消失的渐变问题:渐变在前几层大约为0。我没有尝试过resnet,因为我不确定它是否值得在VAE中试用,因为它不会加深功能图。

这是我的编码器网络架构

# x = 320, 320, 3
x = conv_bn_relu(x, 16, 3, 2)                  # x = 160, 160, 16
x = conv_bn_relu(x, 32, 3, 2)                  # x = 80, 80, 32
x = conv_bn_relu(x, 64, 3, 2)                  # x = 40, 40, 64
x = conv_bn_relu(x, 128, 3, 2)                 # x = 20, 20, 128
x = conv_bn_relu(x, 256, 3, 2)                 # x = 10, 10, 256
x = conv_bn_relu(x, 512, 3, 2)                 # x = 5, 5, 512
x = conv(x, 2 * 128, 5, padding='valid')       # 128 is the size of latent vector z

其中conv_bn_relu包括具有指定参数的卷积层,批处理规范化层和relu层。除了使用卷积转置层之外,解码器与之类似。

我真的希望有人能给我更多建议。

0 个答案:

没有答案