I have code that looks like the following:
import torch
import torch.autograd as grad

# A is a Variable that has undergone previous operations and has an existing graph

dummy = grad.Variable(torch.zeros(6, 5, 4, 3))
for i in xrange(6):

	# Do something here...
    indices = # Determine indices somehow

    dummy[i] = torch.index_select(A[i], 1, indices.view(-1)).view(5, -1, 3)

Two questions:

From this answer 2, it seems that index_select will preserve the state as long as you are indexing from a Variable with some existing state. So am I right to presume that dummy will have a graph that is composed of the graphs of the selected indices?
Does dummy need to have requires_grad=True, or will assigning to it a Variable with requires_grad=True automatically cause that flag to “flip”?