def __call__(self, X, D, G):
D.reset_state()
G.reset_state()
r = 0.0
mg = w_init
for x in X:
f = D(x, G(x))
r += F.mean_squared_error(f, f*0.0 + 1.0)*mg
mg = 1.0
return r