Update PyTorch_Fundamentals.md

pull/1157/head
Ashita Prasad 2024-06-22 18:52:17 +05:30 zatwierdzone przez GitHub
rodzic 71bf180dd5
commit a6bc70dad9
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: B5690EEEBB952194
1 zmienionych plików z 151 dodań i 66 usunięć

Wyświetl plik

@ -5,8 +5,11 @@
# Import pytorch in our codespace # Import pytorch in our codespace
import torch import torch
print(torch.__version__) print(torch.__version__)
```
output -> 2.3.0+cu121 #### Output
```
2.3.0+cu121
``` ```
@ -16,56 +19,72 @@ Now you have already seen how to create a tensor in pytorch. In this notebook i
### 1. Creating tensors ### 1. Creating tensors
Scalar tensor ( a zero dimension tensor)
```python ```python
# Scalar tensor ( a zero dimension tensor)
scalar = torch.tensor(7) scalar = torch.tensor(7)
print(scalar) print(scalar)
```
output -> tensor(7) #### Output
```
tensor(7)
``` ```
Check the dimension of the above tensor
```python ```python
# Check the dimension of the above tensor
print(scalar.ndim) print(scalar.ndim)
```
output -> 0 #### Output
``` ```
0
```
To retrieve the number from the tensor we use `item()`
```python ```python
# To retrieve the number from the tensor we use `item()`
print(scalar.item()) print(scalar.item())
```
output -> 7 #### Output
```
7
``` ```
Vector (It is a single dimension tensor but contain many numbers)
```python ```python
# Vector (It is a single dimension tensor but contain many numbers)
vector = torch.tensor([1,2]) vector = torch.tensor([1,2])
print(vector) print(vector)
```
output -> tensor([1, 2]) #### Output
```
tensor([1, 2])
``` ```
Check the dimensions
```python ```python
# Check the dimensions
print(vector.ndim) print(vector.ndim)
```
output -> 1 #### Output
```
1
``` ```
Check the shape of the vector
```python ```python
# Check the shape of the vector
print(vector.shape) print(vector.shape)
```
output -> torch.Size([2]) #### Output
```
torch.Size([2])
``` ```
@ -82,8 +101,11 @@ You can tell the number of dimensions a tensor in PyTorch has by the number of s
MATRIX = torch.tensor([[1,2], MATRIX = torch.tensor([[1,2],
[4,5]]) [4,5]])
print(MATRIX) print(MATRIX)
```
output -> tensor([[1, 2], #### Output
```
tensor([[1, 2],
[4, 5]]) [4, 5]])
``` ```
@ -92,47 +114,60 @@ There are two brackets so it must be 2 dimensions , lets check
```python ```python
print(MATRIX.ndim) print(MATRIX.ndim)
```
output -> 2 #### Output
```
2
``` ```
```python ```python
# Shape # Shape
print(MATRIX.shape) print(MATRIX.shape)
```
output -> torch.Size([2, 2]) #### Output
```
torch.Size([2, 2])
``` ```
It means MATRIX has 2 rows and 2 columns. It means MATRIX has 2 rows and 2 columns.
Let's create a TENSOR
```python ```python
# Let's create a TENSOR
TENSOR = torch.tensor([[[1,2,3], TENSOR = torch.tensor([[[1,2,3],
[4,5,6], [4,5,6],
[7,8,9]]]) [7,8,9]]])
print(TENSOR) print(TENSOR)
```
output -> tensor([[[1, 2, 3], #### Output
```
tensor([[[1, 2, 3],
[4, 5, 6], [4, 5, 6],
[7, 8, 9]]]) [7, 8, 9]]])
``` ```
Let's check the dimensions
```python ```python
# Let's check the dimensions
print(TENSOR.ndim) print(TENSOR.ndim)
```
output -> 3 #### Output
```
3
``` ```
shape
```python ```python
# shape?
print(TENSOR.shape) print(TENSOR.shape)
```
output -> torch.Size([1, 3, 3]) #### Output
```
torch.Size([1, 3, 3])
``` ```
The dimensions go outer to inner. The dimensions go outer to inner.
@ -150,39 +185,48 @@ That means there's 1 dimension of 3 by 3.
We can create them using `torch.rand()` and passing in the `size` parameter. We can create them using `torch.rand()` and passing in the `size` parameter.
Creating a random tensor of size (3,4)
```python ```python
# creating a random tensor of size (3,4)
rand_tensor = torch.rand(size = (3,4)) rand_tensor = torch.rand(size = (3,4))
print(rand_tensor) print(rand_tensor)
```
output -> tensor([[0.7462, 0.4950, 0.7851, 0.8277], #### Output
```
tensor([[0.7462, 0.4950, 0.7851, 0.8277],
[0.6112, 0.5159, 0.1728, 0.6847], [0.6112, 0.5159, 0.1728, 0.6847],
[0.4472, 0.1612, 0.6481, 0.3236]]) [0.4472, 0.1612, 0.6481, 0.3236]])
``` ```
Check the dimensions
```python ```python
# Check the dimensions
print(rand_tensor.ndim) print(rand_tensor.ndim)
```
output -> 2 #### Output
```
2
``` ```
Shape
```python ```python
# Shape
print(rand_tensor.shape) print(rand_tensor.shape)
```
output -> torch.Size([3, 4]) #### Output
```
torch.Size([3, 4])
``` ```
Datatype
```python ```python
# datatype
print(rand_tensor.dtype) print(rand_tensor.dtype)
```
output -> torch.float32 #### Output
```
torch.float32
``` ```
### Zeros and ones ### Zeros and ones
@ -194,19 +238,24 @@ Here we will create a tensor of any shape filled with zeros and ones
# Create a tensor of all zeros # Create a tensor of all zeros
zeros = torch.zeros(size = (3,4)) zeros = torch.zeros(size = (3,4))
print(zeros) print(zeros)
```
output -> tensor([[0., 0., 0., 0.], #### Output
```
tensor([[0., 0., 0., 0.],
[0., 0., 0., 0.], [0., 0., 0., 0.],
[0., 0., 0., 0.]]) [0., 0., 0., 0.]])
``` ```
Create a tensor of ones
```python ```python
# create a tensor of ones
ones = torch.ones(size = (3,4)) ones = torch.ones(size = (3,4))
print(ones) print(ones)
```
output -> tensor([[1., 1., 1., 1.], #### Output
```
tensor([[1., 1., 1., 1.],
[1., 1., 1., 1.], [1., 1., 1., 1.],
[1., 1., 1., 1.]]) [1., 1., 1., 1.]])
``` ```
@ -229,8 +278,11 @@ zero_to_ten = torch.arange(start = 0,
end = 10, end = 10,
step = 1) step = 1)
print(zero_to_ten) print(zero_to_ten)
```
output -> tensor([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) #### Output
```
tensor([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
``` ```
# 2. Manipulating tensors (tensor operations) # 2. Manipulating tensors (tensor operations)
@ -249,8 +301,11 @@ The operations are :
```python ```python
tensor = torch.tensor([1,2,3]) tensor = torch.tensor([1,2,3])
print(tensor+10) print(tensor+10)
```
output -> tensor([11, 12, 13]) #### Output
```
tensor([11, 12, 13])
``` ```
We have add 10 to each tensor element. We have add 10 to each tensor element.
@ -259,8 +314,11 @@ We have add 10 to each tensor element.
```python ```python
tensor1 = torch.tensor([4,5,6]) tensor1 = torch.tensor([4,5,6])
print(tensor+tensor1) print(tensor+tensor1)
```
output -> tensor([5, 7, 9]) #### Output
```
tensor([5, 7, 9])
``` ```
We have added two tensors , remember that addition takes place element wise. We have added two tensors , remember that addition takes place element wise.
@ -270,8 +328,11 @@ We have added two tensors , remember that addition takes place element wise.
```python ```python
print(tensor-8) print(tensor-8)
```
output -> tensor([-7, -6, -5]) #### Output
```
tensor([-7, -6, -5])
``` ```
We've subtracted 8 from the above tensor. We've subtracted 8 from the above tensor.
@ -279,8 +340,11 @@ We've subtracted 8 from the above tensor.
```python ```python
print(tensor-tensor1) print(tensor-tensor1)
```
output -> tensor([-3, -3, -3]) #### Output
```
tensor([-3, -3, -3])
``` ```
### 3. Multiplication ### 3. Multiplication
@ -289,8 +353,11 @@ output -> tensor([-3, -3, -3])
```python ```python
# Multiply the tensor with 10 (element wise) # Multiply the tensor with 10 (element wise)
print(tensor*10) print(tensor*10)
```
output -> tensor([10, 20, 30]) #### Output
```
tensor([10, 20, 30])
``` ```
Each element of tensor gets multiplied by 10. Each element of tensor gets multiplied by 10.
@ -303,15 +370,21 @@ PyTorch also has a bunch of built-in functions like `torch.mul()` (short for mul
```python ```python
# let's see them # let's see them
print(torch.add(tensor,10)) print(torch.add(tensor,10))
```
output -> tensor([11, 12, 13]) #### Output
```
tensor([11, 12, 13])
``` ```
```python ```python
print(torch.mul(tensor,10)) print(torch.mul(tensor,10))
```
output -> tensor([10, 20, 30]) #### Output
```
tensor([10, 20, 30])
``` ```
### Matrix multiplication (is all you need) ### Matrix multiplication (is all you need)
@ -344,37 +417,49 @@ tensor2 = torch.tensor([[[1,1,1],
print(tensor1) , print(tensor2) print(tensor1) , print(tensor2)
output1 -> tensor([[[1, 2, 3], ```
#### Output
```
tensor([[[1, 2, 3],
[4, 5, 6], [4, 5, 6],
[7, 8, 9]]]) [7, 8, 9]]])
output2 -> tensor([[[1, 1, 1], tensor([[[1, 1, 1],
[2, 2, 2], [2, 2, 2],
[3, 3, 3]]]) [3, 3, 3]]])
``` ```
Let's check the shape
```python ```python
# let's check the shape
print(tensor1.shape) , print(tensor2.shape) print(tensor1.shape) , print(tensor2.shape)
output1 -> torch.Size([1, 3, 3])
output2 ->torch.Size([1, 3, 3])
``` ```
```python #### Output
# Matrix multiplication ```
print(torch.matmul(tensor1, tensor2)) torch.Size([1, 3, 3])
torch.Size([1, 3, 3])
```
output -> tensor([[[14, 14, 14], Matrix multiplication
```python
print(torch.matmul(tensor1, tensor2))
```
#### Output
```
tensor([[[14, 14, 14],
[32, 32, 32], [32, 32, 32],
[50, 50, 50]]]) [50, 50, 50]]])
``` ```
Can also use the "@" symbol for matrix multiplication, though not recommended
```python ```python
# Can also use the "@" symbol for matrix multiplication, though not recommended
print(tensor1 @ tensor2) print(tensor1 @ tensor2)
```
output -> tensor([[[14, 14, 14], #### Output
```
tensor([[[14, 14, 14],
[32, 32, 32], [32, 32, 32],
[50, 50, 50]]]) [50, 50, 50]]])
``` ```