【问题标题】:How to use tf.layers.conv2d to train a autoencoder with tied weights如何使用 tf.layers.conv2d 训练具有绑定权重的自动编码器
【发布时间】:2018-01-15 01:15:44
【问题描述】:

如果我想训练一个权重绑定的自动编码器(编码器和解码器具有相同的权重参数),如何正确使用tf.layers.conv2d 来做到这一点?

我不能简单地在编码器和解码器的相应conv2d 层之间共享变量,因为解码器的权重是编码器的转置。

也许现在几乎不使用捆绑重量,但我只是好奇。

【问题讨论】:

  • Here 是使用共享权重的卷积自编码器的教程

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


【解决方案1】:

使用tf.nn.conv2d(以及相应的tf.nn.conv2d_transpose)。这是一个接受kernel 变量作为参数的低级函数。

kernel = tf.get_variable('kernel', [5, 5, 1, 32])
...
encoder_conv = tf.nn.conv2d(images, kernel, strides=[1, 1, 1, 1], padding='SAME')
...
decoder_conv = tf.nn.conv2d_transpose(images, kernel, strides=[1, 1, 1, 1], padding='SAME')

【讨论】:

    猜你喜欢
    • 2020-02-10
    • 1970-01-01
    • 1970-01-01
    • 2021-01-29
    • 2021-05-10
    • 2021-04-03
    • 2017-06-20
    • 2016-10-12
    • 2019-11-17
    相关资源
    最近更新 更多