我有一个从输入图像中估计depth_map的网络。简而言之,我有一个input_image及其对应的ground_truth (深度图)。让我们把这个网络称为generator网络。到目前一切尚好。现在我听说过“生成对抗性网络and I thought I could improve my network with adding a判别器”--网络:
input -> neural network -> estimated_depth_image -> discriminator -> output: true or false depending on real or
我目前正在使用Mxnet和C++ Symbol API训练一个卷积神经网络。该网络包含一些批处理归一化层,其中包含四个参数NDArray。其中两个参数,moving_mean和moving_variance参数应该在训练期间的每一批中更新。 我猜测,由于executor的前向传递的布尔值设置为true,因此它将自动更新新参数。但是,由于某些原因,这两个NDArray保持不变,没有任何参数更新。怎么会这样呢?此外,由于没有为这两个NDArray计算梯度,因为它不是“可学习”的参数,所以我无法通过常规的优化器更新函数更新值。如何使用symbol API告诉Mxnet更新moving_mean和m
仍然通过视频教程有关放火枪,但击中了另一个错误。
lossFunc = torch.nn.MSELoss()
for i in range(epoch):
output = net(x)
loss = lossFunc(output, y)
loss.zero_grad()
loss.backward()
for f in net.parameters():
f.data.sub_(learning_rate = f.grad.data)
print(output, l