introd u ction to p y torch
play

Introd u ction to P y Torch IN TR OD U C TION TO D E E P L E AR N - PowerPoint PPT Presentation

Introd u ction to P y Torch IN TR OD U C TION TO D E E P L E AR N IN G W ITH P YTOR C H Ismail Ele z i Ph . D . St u dent of Deep Learning INTRODUCTION TO DEEP LEARNING WITH PYTORCH Ne u ral net w orks INTRODUCTION TO DEEP LEARNING WITH


  1. Introd u ction to P y Torch IN TR OD U C TION TO D E E P L E AR N IN G W ITH P YTOR C H Ismail Ele z i Ph . D . St u dent of Deep Learning

  2. INTRODUCTION TO DEEP LEARNING WITH PYTORCH

  3. Ne u ral net w orks INTRODUCTION TO DEEP LEARNING WITH PYTORCH

  4. Wh y P y Torch ? " P y Thonic " - eas y to u se Strong GPU s u pport - models r u n fast Man y algorithms are alread y implemented A u tomatic di � erentiation - more in ne x t lesson Similar to N u mP y INTRODUCTION TO DEEP LEARNING WITH PYTORCH

  5. Matri x M u ltiplication INTRODUCTION TO DEEP LEARNING WITH PYTORCH

  6. P y Torch compared to N u mP y import torch import numpy as np torch.tensor([[2, 3, 5], [1, 2, 9]]) np.array([[2, 3, 5], [1, 2, 9]]) tensor([[ 2, 3, 5], array([[ 2, 3, 5], [ 1, 2, 9]]) [ 1, 2, 9]]) torch.rand(2, 2) np.random.rand(2, 2) tensor([[ 0.0374, -0.0936], array([[ 0.0374, -0.0936], [ 0.3135, -0.6961]]) [ 0.3135, -0.6961]]) a = torch.rand((3, 5)) a = np.random.randn(3, 5) a.shape a.shape torch.Size([3, 5]) (3, 5) INTRODUCTION TO DEEP LEARNING WITH PYTORCH

  7. Matri x operations a = torch.rand((2, 2)) a = np.random.rand(2, 2) b = torch.rand((2, 2)) b = np.random.rand(2, 2) tensor([[-0.6110, 0.0145], array([[-0.6110, 0.0145], [ 1.3583, -0.0921]]) [ 1.3583, -0.0921]]) tensor([[ 0.0673, 0.6419], array([[ 0.0673, 0.6419], [-0.0734, 0.3283]]) [-0.0734, 0.3283]]) torch.matmul(a, b) np.dot(a, b) tensor([[-0.0422, -0.3875], array([[-0.0422, -0.3875], [ 0.0981, 0.8417]]) [ 0.0981, 0.8417]]) INTRODUCTION TO DEEP LEARNING WITH PYTORCH

  8. Matri x operations a * b np.multiply(a, b) tensor([[-0.0411, 0.0093], array([[-0.0411, 0.0093], [-0.0998, -0.0302]]) [-0.0998, -0.0302]]) INTRODUCTION TO DEEP LEARNING WITH PYTORCH

  9. Zeros and Ones a_torch = torch.zeros(2, 2) a_numpy = np.zeros((2, 2)) tensor([[0., 0.], array([[0., 0.], [0., 0.]) [0., 0.]]) b_torch = torch.ones(2, 2) b_numpy = np.ones((2, 2)) tensor([[1., 1.], array([[1., 1.], [1., 1.]) [1., 1.]]) c_torch = torch.eye(2) c_numpy = np.identity(2) tensor([[1., 0.], array([[1., 0.], [0., 1.] [0., 1.]]) INTRODUCTION TO DEEP LEARNING WITH PYTORCH

  10. P y Torch to N u mP y and v ice v ersa d_torch = torch.from_numpy(c_numpy) d = c_torch.numpy() tensor([[1., 0.], array([[1., 0.], [0., 1.], [0., 1.]]) dtype=torch.float64) INTRODUCTION TO DEEP LEARNING WITH PYTORCH

  11. S u mmar y torch.matmul(a, b) # multiples torch tensors a and b * # element-wise multiplication between two torch tensors torch.eye(n) # creates an identity torch tensor with shape (n, n) torch.zeros(n, m) # creates a torch tensor of zeros with shape (n, m) torch.ones(n, m) # creates a torch tensor of ones with shape (n, m) torch.rand(n, m) # creates a random torch tensor with shape (n, m) torch.tensor(l) # creates a torch tensor based on list l INTRODUCTION TO DEEP LEARNING WITH PYTORCH

  12. Let ' s practice IN TR OD U C TION TO D E E P L E AR N IN G W ITH P YTOR C H

  13. For w ard propagation IN TR OD U C TION TO D E E P L E AR N IN G W ITH P YTOR C H Ismail Ele z i Ph . D . St u dent of Deep Learning

  14. INTRODUCTION TO DEEP LEARNING WITH PYTORCH

  15. INTRODUCTION TO DEEP LEARNING WITH PYTORCH

  16. INTRODUCTION TO DEEP LEARNING WITH PYTORCH

  17. INTRODUCTION TO DEEP LEARNING WITH PYTORCH

  18. P y Torch implementation import torch a = torch.Tensor([2]) b = torch.Tensor([-4]) c = torch.Tensor([-2]) d = torch.Tensor([2]) e = a + b f = c * d g = e * f print(e, f, g) tensor([-2.]), tensor([-4.]), tensor([8.]) INTRODUCTION TO DEEP LEARNING WITH PYTORCH

  19. Let ' s practice ! IN TR OD U C TION TO D E E P L E AR N IN G W ITH P YTOR C H

  20. Backpropagation b y a u to - differentiation IN TR OD U C TION TO D E E P L E AR N IN G W ITH P YTOR C H Ismail Ele z i Ph . D . St u dent of Deep Learning

  21. Deri v ati v es INTRODUCTION TO DEEP LEARNING WITH PYTORCH

  22. Deri v ati v e R u les INTRODUCTION TO DEEP LEARNING WITH PYTORCH

  23. Deri v ati v e E x ample - For w ard Pass INTRODUCTION TO DEEP LEARNING WITH PYTORCH

  24. Deri v ati v e E x ample - Back w ard Pass INTRODUCTION TO DEEP LEARNING WITH PYTORCH

  25. Deri v ati v e E x ample - Back w ard Pass INTRODUCTION TO DEEP LEARNING WITH PYTORCH

  26. Deri v ati v e E x ample - Back w ard Pass INTRODUCTION TO DEEP LEARNING WITH PYTORCH

  27. Deri v ati v e E x ample - Back w ard Pass INTRODUCTION TO DEEP LEARNING WITH PYTORCH

  28. Backpropagation in P y Torch Gradient of z is: tensor(2.) import torch Gradient of y is: tensor(-2.) Gradient of x is: tensor(-2.) x = torch.tensor(-3., requires_grad=True) y = torch.tensor(5., requires_grad=True) z = torch.tensor(-2., requires_grad=True) q = x + y f = q * z f.backward() print("Gradient of z is: " + str(z.grad)) print("Gradient of y is: " + str(y.grad)) print("Gradient of x is: " + str(x.grad)) INTRODUCTION TO DEEP LEARNING WITH PYTORCH

  29. Let ' s practice IN TR OD U C TION TO D E E P L E AR N IN G W ITH P YTOR C H

  30. Introd u ction to Ne u ral Net w orks IN TR OD U C TION TO D E E P L E AR N IN G W ITH P YTOR C H Ismail Ele z i Ph . D . St u dent of Deep Learning

  31. Other classifiers k - Nearest Neighbo u r Logistic / Linear Regression Random Forests Gradient Boosted Trees S u pport Vector Machines ... INTRODUCTION TO DEEP LEARNING WITH PYTORCH

  32. ANN v s other classifiers INTRODUCTION TO DEEP LEARNING WITH PYTORCH

  33. F u ll y connected ne u ral net w orks import torch input_layer = torch.rand(10) w1 = torch.rand(10, 20) w2 = torch.rand(20, 20) w3 = torch.rand(20, 4) h1 = torch.matmul(input_layer, w1) h2 = torch.matmul(h1, w2) output_layer = torch.matmul(h2, w3) print(output_layer) tensor([413.8647, 286.5770, 361.8974, 294.0240]) INTRODUCTION TO DEEP LEARNING WITH PYTORCH

  34. B u ilding a ne u ral net w ork - P y Torch st y le import torch input_layer = torch.rand(10) import torch.nn as nn net = Net() result = net(input_layer) class Net(nn.Module): def __init__(self): super(Net, self).__init__() self.fc1 = nn.Linear(10, 20) self.fc2 = nn.Linear(20, 20) self.output = nn.Linear(20, 4) def forward(self, x): x = self.fc1(x) x = self.fc2(x) x = self.output(x) return x INTRODUCTION TO DEEP LEARNING WITH PYTORCH

  35. Let ' s practice ! IN TR OD U C TION TO D E E P L E AR N IN G W ITH P YTOR C H

Recommend


More recommend