---
description: (under construction)
---

# Cheat Sheet

## Pytorch Cheat Sheet

{% file src="https://3883264845-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MR8tEAjhiC8uN1kHR2J%2Fuploads%2Fgit-blob-c5e7d7adba6b2bad834167ff42a9293819d9e8f4%2FPyTorch%20Cheat%20Sheet%20%E2%80%94%20PyTorch%20Tutorials%201.1.0%20documentation.pdf?alt=media" %}

> See also : numpy cheat sheet

## Numpy <-> Torch Tensor

Tensors are similar to NumPy’s ndarrays, with the addition being that Tensors can also be used on a GPU to accelerate computing.

### Converting a Torch Tensor to a NumPy Array

```python
a = torch.ones(5)
print(a)
b = a.numpy()
print(b)
```

### Converting NumPy Array to Torch Tensor

See how changing the np array changed the Torch Tensor automatically

```
import numpy as np
a = np.ones(5)
b = torch.from_numpy(a)
np.add(a, 1, out=a)
print(a)
print(b)
```

## Datasets

There are several options for dataset

* load data into a numpy array, then convert this array into a `torch.*Tensor`
* For images, packages such as Pillow, OpenCV are useful
* (Recommend) For vision, we have created a package called `torchvision`
  * data loaders for common datasets such as Imagenet, CIFAR10, MNIST, etc.

## Using GPU

```python
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
net.to(device)

for epoch in range(epochs):
    for inputs, labels in train_loader:
        inputs, labels = inputs.to(device), labels.to(device)

# ...
# evaluation
with torch.no_grad():
    for inputs, labels in test_loader:
            inputs, labels = inputs.to(device), labels.to(device)
# ...
```

## Visualizing Loss Curve

## Evaluation

## Model function

make it a function

## Train function

## Test function

## Plot output image function
