I think what happens with numpy is that it find that tensors can be handled as sequences and extract the elements from it one by one, hence converting the gpu tensor to a cpu one. Not sure why it returns a tensor and not a numpy array though…