Pytorch tensor to numpy array

DukeLover picture DukeLover · Apr 11, 2018 · Viewed 102k times · Source

I have a pytorch Tensor of size torch.Size([4, 3, 966, 1296])

I want to convert it to numpy array using the following code:

imgs = imgs.numpy()[:, ::-1, :, :]

Can anyone please explain what this code is doing ?

Answer

Azizbro picture Azizbro · Feb 8, 2019

I believe you also have to use .detach(). I had to convert my Tensor to a numpy array on Colab which uses CUDA and GPU. I did it like the following:

# this is just my embedding matrix which is a Torch tensor object
embedding = learn.model.u_weight

embedding_list = list(range(0, 64382))

input = torch.cuda.LongTensor(embedding_list)
tensor_array = embedding(input)
# the output of the line below is a numpy array
tensor_array.cpu().detach().numpy()