https://github.com/wkentaro/pytorch-for-numpy-users
PyTorch for Numpy users. https://pytorch-for-numpy-users.wkentaro.com
https://github.com/wkentaro/pytorch-for-numpy-users
numpy pytorch
Last synced: 8 months ago
JSON representation
PyTorch for Numpy users. https://pytorch-for-numpy-users.wkentaro.com
- Host: GitHub
- URL: https://github.com/wkentaro/pytorch-for-numpy-users
- Owner: wkentaro
- License: mit
- Created: 2017-05-20T20:18:43.000Z (over 8 years ago)
- Default Branch: main
- Last Pushed: 2023-02-05T15:40:12.000Z (almost 3 years ago)
- Last Synced: 2025-03-28T07:06:09.673Z (8 months ago)
- Topics: numpy, pytorch
- Language: HTML
- Homepage:
- Size: 62.5 KB
- Stars: 699
- Watchers: 15
- Forks: 89
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
- Awesome-pytorch-list-CNVersion - pytorch-for-numpy-users
- Awesome-pytorch-list - pytorch-for-numpy-users
README
# PyTorch for Numpy users.


[PyTorch](https://github.com/pytorch/pytorch.git) version of [_Torch for Numpy users_](https://github.com/torch/torch7/wiki/Torch-for-Numpy-users).
We assume you use the latest PyTorch and Numpy.
## How to contribute?
```bash
git clone https://github.com/wkentaro/pytorch-for-numpy-users.git
cd pytorch-for-numpy-users
vim conversions.yaml
git commit -m "Update conversions.yaml"
./run_tests.py
```
Types
Numpy PyTorch
np.ndarray
torch.Tensor
np.float32
torch.float32; torch.float
np.float64
torch.float64; torch.double
np.float16
torch.float16; torch.half
np.int8
torch.int8
np.uint8
torch.uint8
np.int16
torch.int16; torch.short
np.int32
torch.int32; torch.int
np.int64
torch.int64; torch.long
Ones and zeros
Numpy PyTorch
np.empty((2, 3))
torch.empty(2, 3)
np.empty_like(x)
torch.empty_like(x)
np.eye
torch.eye
np.identity
torch.eye
np.ones
torch.ones
np.ones_like
torch.ones_like
np.zeros
torch.zeros
np.zeros_like
torch.zeros_like
From existing data
Numpy PyTorch
np.array([[1, 2], [3, 4]])
torch.tensor([[1, 2], [3, 4]])
np.array([3.2, 4.3], dtype=np.float16)
np.float16([3.2, 4.3])
torch.tensor([3.2, 4.3], dtype=torch.float16)
x.copy()
x.clone()
x.astype(np.float32)
x.type(torch.float32); x.float()
np.fromfile(file)
torch.tensor(torch.Storage(file))
np.frombuffer
np.fromfunction
np.fromiter
np.fromstring
np.load
torch.load
np.loadtxt
np.concatenate
torch.cat
Numerical ranges
Numpy PyTorch
np.arange(10)
torch.arange(10)
np.arange(2, 3, 0.1)
torch.arange(2, 3, 0.1)
np.linspace
torch.linspace
np.logspace
torch.logspace
Linear algebra
Numpy PyTorch
np.dot
torch.dot # 1D arrays only
torch.mm # 2D arrays only
torch.mv # matrix-vector (2D x 1D)
np.matmul
torch.matmul
np.tensordot
torch.tensordot
np.einsum
torch.einsum
Building matrices
Numpy PyTorch
np.diag
torch.diag
np.tril
torch.tril
np.triu
torch.triu
Attributes
Numpy PyTorch
x.shape
x.shape; x.size()
x.strides
x.stride()
x.ndim
x.dim()
x.data
x.data
x.size
x.nelement()
x.dtype
x.dtype
Indexing
Numpy PyTorch
x[0]
x[0]
x[:, 0]
x[:, 0]
x[indices]
x[indices]
np.take(x, indices)
torch.take(x, torch.LongTensor(indices))
x[x != 0]
x[x != 0]
Shape manipulation
Numpy PyTorch
x.reshape
x.reshape; x.view
x.resize()
x.resize_
x.resize_as_
x = np.arange(6).reshape(3, 2, 1)
x.transpose(2, 0, 1) # 012 -> 201
x = torch.arange(6).reshape(3, 2, 1)
x.permute(2, 0, 1); x.transpose(1, 2).transpose(0, 1) # 012 -> 021 -> 201
x.flatten
x.view(-1)
x.squeeze()
x.squeeze()
x[:, None]; np.expand_dims(x, 1)
x[:, None]; x.unsqueeze(1)
Item selection and manipulation
Numpy PyTorch
np.put
x.put
x.put_
x = np.array([1, 2, 3])
x.repeat(2) # [1, 1, 2, 2, 3, 3]
x = torch.tensor([1, 2, 3])
x.repeat_interleave(2) # [1, 1, 2, 2, 3, 3]
x.repeat(2) # [1, 2, 3, 1, 2, 3]
x.repeat(2).reshape(2, -1).transpose(1, 0).reshape(-1)
# [1, 1, 2, 2, 3, 3]
np.tile(x, (3, 2))
x.repeat(3, 2)
x = np.array([[0, 1], [2, 3], [4, 5]])
idxs = np.array([0, 2])
np.choose(idxs, x) # [0, 5]
x = torch.tensor([[0, 1], [2, 3], [4, 5]])
idxs = torch.tensor([0, 2])
x[idxs, torch.arange(x.shape[1])] # [0, 5]
torch.gather(x, 0, idxs[None, :])[0] # [0, 5]
np.sort
sorted, indices = torch.sort(x, [dim])
np.argsort
sorted, indices = torch.sort(x, [dim])
np.nonzero
torch.nonzero
np.where
torch.where
x[::-1]
torch.flip(x, [0])
np.unique(x)
torch.unique(x)
Calculation
Numpy PyTorch
x.min
x.min
x.argmin
x.argmin
x.max
x.max
x.argmax
x.argmax
x.clip
x.clamp
x.round
x.round
np.floor(x)
torch.floor(x); x.floor()
np.ceil(x)
torch.ceil(x); x.ceil()
x.trace
x.trace
x.sum
x.sum
x.sum(axis=0)
x.sum(0)
x.cumsum
x.cumsum
x.mean
x.mean
x.std
x.std
x.prod
x.prod
x.cumprod
x.cumprod
x.all
x.all
x.any
x.any
Arithmetic and comparison operations
Numpy PyTorch
np.less
x.lt
np.less_equal
x.le
np.greater
x.gt
np.greater_equal
x.ge
np.equal
x.eq
np.not_equal
x.ne
Random numbers
Numpy PyTorch
np.random.seed
torch.manual_seed
np.random.permutation(5)
torch.randperm(5)
Numerical operations
Numpy PyTorch
np.sign
torch.sign
np.sqrt
torch.sqrt