Hey Frank,
So finally I managed to overcome my problem.
Indeed I didn’t do a forward+backward pass before seeing my gradients. I’m very new to deep learning…
So for those who might have the save problem as me, here is what you have to do once you finished the training of the NN :
error = nn.MSELoss() #your loss
for i, (variable, target) in enumerate(train_loader):
      variable, target = variable.to(device), target.to(device)
      target = target.unsqueeze(1)
      output = model(variable)
      loss = error(output,target)
      loss.backward()

This will do a forward pass + a backward pass through the whole training set (you can also do it for only one batch if you want, just throw the loop) and then in order to get the gradients in a numpy array, just do
model_tmp.fc[i].weight.grad.detach().numpy()

detach is here to prevent that the tensor gradient explodes the RAM.