我正在评估R中的MXNet,我想模拟混合密度netowrks。可以在此处找到Tensorflow,Keras和Edward的示例:http://cbonnett.github.io/MDN_EDWARD_KERAS_TF.html
显示的示例是正态分布的混合。如何使用MXNet进行相同的分析?
答案 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