How to convert a pytorch tensor into a numpy array? How to convert a pytorch tensor into a numpy array? numpy numpy

How to convert a pytorch tensor into a numpy array?


copied from pytorch doc:

a = torch.ones(5)print(a)

tensor([1., 1., 1., 1., 1.])

b = a.numpy()print(b)

[1. 1. 1. 1. 1.]


Following from the below discussion with @John:

In case the tensor is (or can be) on GPU, or in case it (or it can) require grad, one can use

t.detach().cpu().numpy()

I recommend to uglify your code only as much as required.


You can try following ways

1. torch.Tensor().numpy()2. torch.Tensor().cpu().data.numpy()3. torch.Tensor().cpu().detach().numpy()


Another useful way :

a = torch(0.1, device='cuda')a.cpu().data.numpy()

Answer

array(0.1, dtype=float32)