I am struggling with this tensor.cpu() problem

It seems like the latest pytorch upstream code had not solved this completely yet.

```
TypeError: can't convert CUDA tensor to numpy. Use Tensor.cpu() to copy the tensor to host memory first.
```

I am struggling with this tensor.cpu() problem

It seems like the latest pytorch upstream code had not solved this completely yet.

```
TypeError: can't convert CUDA tensor to numpy. Use Tensor.cpu() to copy the tensor to host memory first.
```

Hi,

This is the expected behaviour. If you want a cuda tensor as a numpy array, you have to first send it to the cpu with `.cpu()`

then you can get the numpy array with `.numpy()`

.

in this case, how should I modify this affected line of code ? It seems like .cpu() is used in the next line

This line seems fine. First, it does the operation on tensor v as `v = v / np.sqrt(torch.sum(v * v))`

and then net line it will send that to CPU: `... = v.cpu()`

but look again at the back trace given at https://github.com/jacobgil/pytorch-pruning/issues/16#issuecomment-429922322

It is pointing the problem at line 101

Someone told me: we can’t mix gpu and numpy variables in an algorithm or chunk of code

So, he told me to find a pytorch alternative for numpy.sqrt()

numpy is cpu only. So you can’t use it to perform gpu operations. You can use `torch.sqrt()`

to replace that