0

我正在尝试使用 GAN 进行时间序列预测。我正在使用 MXNet/Gluon。因此,我有一个大小为 (N, 1) 的顺序数据,我已将其转换为 (N-stepsize, stepsize)。现在我很难理解网络的输入输出形状。这里是生成器和鉴别器网络的代码。

netG = nn.Sequential()
with netG.name_scope():
    netG.add(nn.Dense(20))
    netG.add(nn.BatchNorm(momentum = 0.8))
    netG.add(nn.Dropout(0.5))
    netG.add(nn.Dense(15))
    netG.add(nn.BatchNorm(momentum = 0.8))
    netG.add(nn.Dropout(0.5))
    netG.add(nn.Dense(20))
    netG.add(nn.BatchNorm(momentum = 0.8))
    netG.add(nn.Dropout(0.5))
    netG.add(nn.Dense(step_size, activation = "tanh"))


#300, 50, 2
#input shape is inferred
netD = nn.Sequential()
with netD.name_scope():
    netD.add(nn.Dense(20))
    netG.add(nn.BatchNorm(momentum = 0.8))
    netD.add(nn.Dense(15, activation='tanh'))
    netG.add(nn.BatchNorm(momentum = 0.8))
    netD.add(nn.Dense(20, activation='tanh'))
    netD.add(nn.Dense(step_size))

提前致谢。

4

1 回答 1

0

您可以使用以下代码检查张量形状: print(mx.viz.print_summary(netG(mx.sym.var('data')), shape={'data':(1,100,10)})) 我在这里假设 N-stepsize 等于 100,stepsize 等于 10。

您在鉴别器中有 2 个错误:您将 Batchnorm 层添加到netG而不是netD

于 2019-04-29T22:49:49.663 回答