有没有使用MxNet构建卷积自动编码器的玩具示例?

时间:2017-04-13 11:43:22

标签: machine-learning computer-vision convolution autoencoder mxnet

我正在寻找使用MxNet的卷积自动编码器的实现。但是,只有一个基于完全连接网络的自动编码器示例,即here。还有一个问题在github中提出类似的问题,但收到的回复非常少。是否有使用MxNet实现的卷积自动编码器的玩具示例?

2 个答案:

答案 0 :(得分:1)

mxnet中仍然没有卷积自动编码器示例,尽管该区域有一些progress in research。无论如何,在MxNet github中有a ticket,但它仍然是开放的。我们非常欢迎您提供帮助,例如migrating the code from Keras

答案 1 :(得分:0)

请在Mxnet Gluon中找到Conv自动编码器模型的示例。引用自here的代码。在Gluon中以标准方式训练该模型。

from mxnet import gluon as g

class CNNAutoencoder(g.nn.HybridBlock):
    def __init__(self):
        super(CNNAutoencoder, self).__init__()
        with self.name_scope():
            self.encoder = g.nn.HybridSequential('encoder_')
            with self.encoder.name_scope():
                self.encoder.add(g.nn.Conv2D(16, 3, strides=3, padding=1, activation='relu'))
                self.encoder.add(g.nn.MaxPool2D(2, 2))
                self.encoder.add(g.nn.Conv2D(8, 3, strides=2, padding=1, activation='relu'))
                self.encoder.add(g.nn.MaxPool2D(2, 1))

            self.decoder = g.nn.HybridSequential('decoder_')
            with self.decoder.name_scope():
                self.decoder.add(g.nn.Conv2DTranspose(16, 3, strides=2, activation='relu'))
                self.decoder.add(g.nn.Conv2DTranspose(8, 5, strides=3, padding=1, activation='relu'))
                self.decoder.add(g.nn.Conv2DTranspose(1, 2, strides=2, padding=1, activation='tanh'))

    def forward(self, x):
        x = self.encoder(x)
        x = self.decoder(x)
        return x

model = CNNAutoencoder()
model.hybridize()