import torch x = torch.tensor(1.0) w1 = torch.tensor(2.0, requires_grad=True) b1 = torch.tensor(0.0, requires_grad=True) w2 = torch.tensor(3.0, requires_grad=True) b2 = torch.tensor(1.0, requires_grad=True) y = torch.tensor(2.0) h1 = w1 * x + b1 a1 = torch.relu(h1) h2 = w2 * a1 + b2 loss = (h2 - y) ** 2 loss.backward() print(f"loss = {loss.item()}") # 25.0 print(f"dL/dw1 = {w1.grad.item()}") # 30.0 print(f"dL/db1 = {b1.grad.item()}") # 30.0 print(f"dL/dw2 = {w2.grad.item()}") # 20.0 print(f"dL/db2 = {b2.grad.item()}") # 10.0