Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Математичні Операції з Тензорами | Секція
Practice
Projects
Quizzes & Challenges
Вікторини
Challenges
/
PyTorch: Основи для ML-Інженера

bookМатематичні Операції з Тензорами

Поелементні операції

Поелементні операції застосовуються до кожного елемента тензора окремо. Такі операції, як додавання, віднімання та ділення, працюють аналогічно до операцій у NumPy:

123456789101112131415
import torch a = torch.tensor([1, 2, 3]) b = torch.tensor([4, 5, 6]) # Element-wise addition addition_result = a + b print(f"Addition: {addition_result}") # Element-wise subtraction subtraction_result = a - b print(f"Subtraction: {subtraction_result}") # Element-wise multiplication multiplication_result = a * b print(f"Multiplication: {multiplication_result}") # Element-wise division division_result = a / b print(f"Division: {division_result}")
copy

Матричні операції

PyTorch також підтримує матричне множення та скалярний добуток, які виконуються за допомогою функції torch.matmul():

123456
import torch x = torch.tensor([[1, 2], [3, 4]]) y = torch.tensor([[5, 6], [7, 8]]) # Matrix multiplication z = torch.matmul(x, y) print(f"Matrix multiplication: {z}")
copy

Можна також використовувати оператор @ для множення матриць:

12345
import torch x = torch.tensor([[1, 2], [3, 4]]) y = torch.tensor([[5, 6], [7, 8]]) z = x @ y print(f"Matrix Multiplication with @: {z}")
copy

Операції агрегації

Операції агрегації обчислюють зведену статистику з тензорів, таку як сума, середнє, максимальні та мінімальні значення, які можна отримати за допомогою відповідних методів.

12345678910
import torch tensor = torch.tensor([[1, 2, 3], [4, 5, 6]]).float() # Sum of all elements print(f"Sum: {tensor.sum()}") # Mean of all elements print(f"Mean: {tensor.mean()}") # Maximum value print(f"Max: {tensor.max()}") # Minimum value print(f"Min: {tensor.min()}")
copy
Note
Примітка

Ми використали метод float(), щоб перетворити тип даних тензора на число з плаваючою комою, оскільки метод mean() вимагає саме такого типу даних. Без цього перетворення тензор зберігає тип цілих чисел за замовчуванням, який несумісний із mean().

Методи агрегації також мають два необов'язкових параметри:

  • dim: визначає вимір (аналогічно до axis у NumPy), вздовж якого виконується операція. За замовчуванням, якщо dim не вказано, операція застосовується до всіх елементів тензора;
  • keepdim: булевий прапорець (за замовчуванням False). Якщо встановлено у True, зменшений вимір зберігається як розмірність 1 у результаті, зберігаючи початкову кількість вимірів.
12345678
import torch tensor = torch.tensor([[1, 2, 3], [4, 5, 6]]) # Aggregation operations along specific dimensions print(f"Sum along rows (dim=1): {tensor.sum(dim=1)}") print(f"Sum along columns (dim=0): {tensor.sum(dim=0)}") # Aggregation with keepdim=True print(f"Sum along rows with keepdim (dim=1): {tensor.sum(dim=1, keepdim=True)}") print(f"Sum along columns with keepdim (dim=0): {tensor.sum(dim=0, keepdim=True)}")
copy

Broadcasting

Бродкастинг дозволяє виконувати операції між тензорами різних форм за рахунок автоматичного розширення вимірів. Якщо потрібне оновлення знань щодо бродкастингу, детальніше можна дізнатися тут.

123456
import torch a = torch.tensor([[1, 2, 3]]) # Shape (1, 3) b = torch.tensor([[4], [5]]) # Shape (2, 1) # Broadcasting addition c = a + b print(f"Broadcasted addition: {c}")
copy

Корисні математичні функції

PyTorch також надає різноманітні математичні функції, такі як експоненти, логарифми та тригонометричні функції.

1234567
tensor = torch.tensor([1.0, 2.0, 3.0]) # Exponentiation print(f"Exponent: {tensor.exp()}") # Logarithm print(f"Logarithm: {tensor.log()}") # Sine print(f"Sine: {tensor.sin()}")
copy
question mark

Яка з наступних операцій правильно виконує множення матриць у PyTorch?

Select all correct answers

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 1. Розділ 7

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

bookМатематичні Операції з Тензорами

Свайпніть щоб показати меню

Поелементні операції

Поелементні операції застосовуються до кожного елемента тензора окремо. Такі операції, як додавання, віднімання та ділення, працюють аналогічно до операцій у NumPy:

123456789101112131415
import torch a = torch.tensor([1, 2, 3]) b = torch.tensor([4, 5, 6]) # Element-wise addition addition_result = a + b print(f"Addition: {addition_result}") # Element-wise subtraction subtraction_result = a - b print(f"Subtraction: {subtraction_result}") # Element-wise multiplication multiplication_result = a * b print(f"Multiplication: {multiplication_result}") # Element-wise division division_result = a / b print(f"Division: {division_result}")
copy

Матричні операції

PyTorch також підтримує матричне множення та скалярний добуток, які виконуються за допомогою функції torch.matmul():

123456
import torch x = torch.tensor([[1, 2], [3, 4]]) y = torch.tensor([[5, 6], [7, 8]]) # Matrix multiplication z = torch.matmul(x, y) print(f"Matrix multiplication: {z}")
copy

Можна також використовувати оператор @ для множення матриць:

12345
import torch x = torch.tensor([[1, 2], [3, 4]]) y = torch.tensor([[5, 6], [7, 8]]) z = x @ y print(f"Matrix Multiplication with @: {z}")
copy

Операції агрегації

Операції агрегації обчислюють зведену статистику з тензорів, таку як сума, середнє, максимальні та мінімальні значення, які можна отримати за допомогою відповідних методів.

12345678910
import torch tensor = torch.tensor([[1, 2, 3], [4, 5, 6]]).float() # Sum of all elements print(f"Sum: {tensor.sum()}") # Mean of all elements print(f"Mean: {tensor.mean()}") # Maximum value print(f"Max: {tensor.max()}") # Minimum value print(f"Min: {tensor.min()}")
copy
Note
Примітка

Ми використали метод float(), щоб перетворити тип даних тензора на число з плаваючою комою, оскільки метод mean() вимагає саме такого типу даних. Без цього перетворення тензор зберігає тип цілих чисел за замовчуванням, який несумісний із mean().

Методи агрегації також мають два необов'язкових параметри:

  • dim: визначає вимір (аналогічно до axis у NumPy), вздовж якого виконується операція. За замовчуванням, якщо dim не вказано, операція застосовується до всіх елементів тензора;
  • keepdim: булевий прапорець (за замовчуванням False). Якщо встановлено у True, зменшений вимір зберігається як розмірність 1 у результаті, зберігаючи початкову кількість вимірів.
12345678
import torch tensor = torch.tensor([[1, 2, 3], [4, 5, 6]]) # Aggregation operations along specific dimensions print(f"Sum along rows (dim=1): {tensor.sum(dim=1)}") print(f"Sum along columns (dim=0): {tensor.sum(dim=0)}") # Aggregation with keepdim=True print(f"Sum along rows with keepdim (dim=1): {tensor.sum(dim=1, keepdim=True)}") print(f"Sum along columns with keepdim (dim=0): {tensor.sum(dim=0, keepdim=True)}")
copy

Broadcasting

Бродкастинг дозволяє виконувати операції між тензорами різних форм за рахунок автоматичного розширення вимірів. Якщо потрібне оновлення знань щодо бродкастингу, детальніше можна дізнатися тут.

123456
import torch a = torch.tensor([[1, 2, 3]]) # Shape (1, 3) b = torch.tensor([[4], [5]]) # Shape (2, 1) # Broadcasting addition c = a + b print(f"Broadcasted addition: {c}")
copy

Корисні математичні функції

PyTorch також надає різноманітні математичні функції, такі як експоненти, логарифми та тригонометричні функції.

1234567
tensor = torch.tensor([1.0, 2.0, 3.0]) # Exponentiation print(f"Exponent: {tensor.exp()}") # Logarithm print(f"Logarithm: {tensor.log()}") # Sine print(f"Sine: {tensor.sin()}")
copy
question mark

Яка з наступних операцій правильно виконує множення матриць у PyTorch?

Select all correct answers

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 1. Розділ 7
some-alt