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