Search

PyTorch and NumPy Basics

Note

•
Advantage
◦
Interoperability with NumPy
▪
Popular open source library used for mathematical and scientific computing in Python. It enables efficient operations on large multi-dimensional arrays, and has a large ecosystem of supporting libraries.
•
MatPlotLib for plotting and visualization
•
OpenCV for image and video processing
•
Pandas for file I/O and data analysis
•
Compute derivatives and display gradients: here
•
Converting Torch tensors and NumPy arrays: here

PyTorch Tensor Basic

import torch x = torch.tensor(3.) #(1) w = torch.tensor(4., requires_grad=True) b = torch.tensor(5., requires_grad=True) y = w * x + b # Compute derivatives y.backward() # Display gradients print('dy/dx: ', x.grad) print('dy/dw: ', w.grad) print('dy/db: ', b.grad) >>> dy/dx: None #(2) >>> dy/dw: tensor(3.) >>> dy/db: tensor(1.)
Python
복사
# (1) Calculate derivative only when we need them, each gradient calculation has a certain cost and it can slow down the model in large dataset. #(2) x.grad is None, because x does not have requires_grad set to True. The ‘.grad’ function stands for gradient, another term for derivative.

NumPy Basic

import numpy as np # Create array in NumPy x = np.array([[1, 2], [3, 4]]) # Converting a NumPy array to a torch tensor (either one works) y = torch.from_numpy(x) #(1) y = torch.tensor(x) #(1) # Converting a torch tensor to a numpy array z = y.numpy() #(2) # Checking data types x.dtype, y.dtype >>> (dtype('float64'), torch.float64) #(3)
Python
복사
# ( 1 ) torch.from_numpy uses a same space and memory, whereas torch.tensor creates a copy of the data # (2) Converting PyTorch to NumPy is important as most datasets you’ll work with will likely be read and preprocessed as NumPy arrays. # (3) dtype('float64') is a NumPy specific data type, whereas torch.float64 is a PyTorch specific data type

NumPy array vs Torch tensor

•
PyTorch is specialized in working with GPUs
•
GPUs are optimized for matrices operations
•
NumPy is implemented for CPUs whereas PyTorch is implemented for GPUs
•
PyTorch helps to move data to GPUs