我们如何使用MXNet创建混合密度网络?

时间:2017-05-10 20:03:29

标签: r regression gaussian mxnet mixture

我正在评估R中的MXNet,我想模拟混合密度netowrks。可以在此处找到Tensorflow,Keras和Edward的示例:http://cbonnett.github.io/MDN_EDWARD_KERAS_TF.html

显示的示例是正态分布的混合。如何使用MXNet进行相同的分析?

1 个答案:

答案 0 :(得分:1)

不幸的是,MxNet中还没有实现混合密度网络(MDN)。而且,由于MxNet是一项社区活动,我们非常欢迎您的贡献!

在您的情况下,从Keras / TF迁移代码应该非常简单。目前,MxNet的R绑定非常有限,因为现在无法创建自定义操作,但是查看示例,我不会看到需要任何自定义操作。

我还没有运行此代码,但这里是您的示例中的MDN模型使用MxNet Python Symbol API的样子:

def mapping(self, X):
    """pi, mu, sigma = NN(x; theta)"""
    hidden1 = mx.sym.FullyConnected(data=X, num_hidden=15)  # fully-connected layer with 15 hidden units
    act1 = mx.sym.Activation(data=hidden1, act_type='relu')
    hidden2 = mx.sym.FullyConnected(data=act1, num_hidden=15)  # fully-connected layer with 15 hidden units
    act2 = mx.sym.Activation(data=hidden2, act_type='relu')

    self.mus = mx.sym.FullyConnected(data=act2, num_hidden=self.K)  # fully-connected layer with 15 hidden units

    sigma_fc = mx.sym.FullyConnected(data=act2, num_hidden=self.K)
    self.sigmas = mx.sym.exp(data=sigma_fc) # the variance

    pi_fc = mx.sym.FullyConnected(data=act2, num_hidden=self.K)
    self.pi = mx.sym.SoftmaxActivation(data=pi_fc) # the mixture components