Hey,
I am just a little unclear on the specific details of how autograd works here - specifically, whether the gradients of model weights with respect to input/output Variables are saved within the model’s parameters or within the Variable objects themselves.
I am trying to train a model for use in a reinforcement learning task, and to do so I need to compute the forward pass many times for different inputs before I can get the reward values to perform the backward pass. I am wondering whether I can just do something like  e.g.
Y = Variable(torch.zeros(N))
for i in range(N):
     Y[i] = model(X[i])

for i in range(N)
    optim.zero_grad()
    l = loss(Y[i], r)
    loss.backward()
    optim.step()

or whether I need to do something more sophisticated.