Difference between revisions of "PyTorch"
|Line 72:||Line 72:|
Revision as of 10:04, 29 July 2020
PyTorch is a popular machine learning library developed by Facebook
# If using conda, python 3.5+, and CUDA 10.0 (+ compatible cudnn) conda install pytorch torchvision cudatoolkit=10.0 -c pytorch
import torch import torch.nn as nn # Training for epoch in range(epochs): running_loss = 0.0 for i, data in enumerate(trainloader, 0): # get the inputs; data is a list of [inputs, labels] inputs, labels = data # zero the parameter gradients optimizer.zero_grad() # forward + backward + optimize outputs = net(inputs) loss = criterion(outputs, labels) loss.backward() optimizer.step()
This function allows you to perform interpolation on your input tensor.
It is very useful for resizing images or warping images.
Reducing memory usage
- Save loss using
.item()which returns a standard Python number
- For non-scalar items, use
detach()deletes the item from the autograd edge
cpu()copies the tensor to the CPU
numpy()returns a numpy view of the tensor
from torch.utils.tensorboard import SummaryWriter writer = SummaryWriter(log_dir="./runs") # Calculate loss. Increment the step. writer.add_scalar("train_loss", loss.item(), step) # Optionally flush e.g. at checkpoints writer.flush() # Close the writer (will flush) writer.close()
PyTorch3D is a library by Facebook AI Research which contains structures and differentiable mesh, point cloud renderers.
It is build with custom CUDA kernels.