if you don’t want to hold onto the source tensor, but need its values, you obviously have to make a copy, e.g. x2=x[…,::2].clone(). at this point, you’d rely on the garbage collector to release x (doing “del x” may help).
as for gradients… I think x slicing wont keep a reference to original storage (in autograd code), so it should be the same. In other words, gradients of indexing/cloning don’t depend on data values, it should be enough to know shapes/indexes to do backprop.