Interactive showcase of tensor operations with NumPy and PyTorch
Tensors are multi-dimensional arrays that generalize scalars, vectors, and matrices to higher dimensions. They are fundamental in machine learning and deep learning frameworks.
NumPy provides powerful N-dimensional array objects that we can use as tensors. Here are some basic operations:
import numpy as np # Scalar (0D tensor) scalar = np.array(5) # Vector (1D tensor) vector = np.array([1, 2, 3]) # Matrix (2D tensor) matrix = np.array([[1, 2], [3, 4]]) # 3D tensor tensor_3d = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
# Element-wise addition a = np.array([1, 2, 3]) b = np.array([4, 5, 6]) result = a + b # [5, 7, 9] # Matrix multiplication mat_a = np.array([[1, 2], [3, 4]]) mat_b = np.array([[5, 6], [7, 8]]) result = np.dot(mat_a, mat_b) # Reshaping tensor = np.arange(8) # [0,1,2,3,4,5,6,7] reshaped = tensor.reshape((2, 4))
PyTorch tensors are similar to NumPy arrays but with GPU acceleration support and automatic differentiation capabilities.
import torch # Create tensors scalar = torch.tensor(5) vector = torch.tensor([1., 2., 3.]) matrix = torch.tensor([[1, 2], [3, 4]]) # GPU tensor (if available) if torch.cuda.is_available(): gpu_tensor = torch.tensor([1, 2, 3], device='cuda') # With gradient tracking x = torch.tensor(2., requires_grad=True)
# Automatic differentiation example x = torch.tensor(2., requires_grad=True) y = x**2 + 3*x + 1 # Compute gradient y.backward() print(x.grad) # dy/dx = 2x + 3 → 7
Understanding tensor shapes and dimensions is crucial. Here's how different rank tensors look:
Shape: ()
Shape: (3,)