Why applying detach to a tensor changes its value?

Applying detach changes the mean of vectors within the new tensor. Why is that?

d_gen_input = Variable(gi_sampler(minibatch_size, g_input_size))
d_gen_input.mean()
tensor(0.4958)

d_fake_data = G(d_gen_input).detach()
d_fake_data.mean()
tensor(-0.1136)

d_gen_input.mean()
tensor(0.4958)

it’s not detach() that changed the mean, it’s G(d_gen_input)