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

bookФорми та розміри у PyTorch

Аналогічно до масивів NumPy, форма тензора визначає його розмірності. Переглянути форму тензора можна за допомогою атрибута .shape:

123
import torch tensor = torch.tensor([[1, 2, 3], [4, 5, 6]]) print(f"Tensor shape: {tensor.shape}")
copy

Зміна форми тензорів за допомогою view

Метод .view() створює нове представлення тензора із заданою формою без зміни оригінального тензора. Загальна кількість елементів повинна залишатися незмінною.

Note
Визначення

Термін view означає новий тензор з іншою формою, який використовує ті ж самі дані, що й оригінальний тензор. Зміни, внесені у view, відобразяться в оригінальному тензорі, і навпаки, оскільки вони мають спільну область пам’яті.

1234567
import torch tensor = torch.arange(12) # Reshape a tensor to 4x3 reshaped_tensor = tensor.view(4, 3) print(f"Reshaped tensor: {reshaped_tensor}") # Original tensor remains unchanged print(f"Original tensor: {tensor}")
copy

Зміна форми тензорів за допомогою reshape

Метод .reshape() подібний до .view(), але може працювати у випадках, коли тензор не зберігається послідовно в пам’яті. Також не змінює оригінальний тензор.

12345
import torch tensor = torch.arange(12) # Reshape a tensor to 6x2 reshaped_tensor = tensor.reshape(6, 2) print(f"Reshaped tensor: {reshaped_tensor}")
copy

Використання від’ємних розмірностей

Можна використовувати -1 у формі, щоб PyTorch визначив розмір одного з вимірів автоматично на основі загальної кількості елементів.

12345
import torch tensor = torch.arange(12) # Automatically infer the second dimension inferred_tensor = tensor.view(2, -1) print("Inferred Tensor:", inferred_tensor)
copy

Розуміння уявлень тензорів

Уявлення тензора розділяє ті ж самі дані з оригінальним тензором. Зміни в уявленні впливають на оригінальний тензор і навпаки.

1234567
import torch tensor = torch.arange(12) view_tensor = tensor.view(2, 6) view_tensor[0, 0] = 999 # Changes in the view are reflected in the original tensor print("View Tensor:", view_tensor) print("Original Tensor:", tensor)
copy

Зміна розмірностей

Наступні два методи дозволяють додавати або видаляти розмірності:

  • unsqueeze(dim) додає нову розмірність у вказаній позиції;
  • squeeze(dim) видаляє розмірності розміру 1.
12345678
import torch tensor = torch.arange(12) # Add a new dimension unsqueezed_tensor = tensor.unsqueeze(0) # Add a batch dimension print(f"Unsqueezed tensor: {unsqueezed_tensor.shape}") # Remove a dimension of size 1 squeezed_tensor = unsqueezed_tensor.squeeze(0) print(f"Squeezed Tensor: {squeezed_tensor.shape}")
copy
question mark

Якою буде форма тензора після виконання наступного коду?

Select the correct answer

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

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

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

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

Запитати АІ

expand

Запитати АІ

ChatGPT

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

bookФорми та розміри у PyTorch

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

Аналогічно до масивів NumPy, форма тензора визначає його розмірності. Переглянути форму тензора можна за допомогою атрибута .shape:

123
import torch tensor = torch.tensor([[1, 2, 3], [4, 5, 6]]) print(f"Tensor shape: {tensor.shape}")
copy

Зміна форми тензорів за допомогою view

Метод .view() створює нове представлення тензора із заданою формою без зміни оригінального тензора. Загальна кількість елементів повинна залишатися незмінною.

Note
Визначення

Термін view означає новий тензор з іншою формою, який використовує ті ж самі дані, що й оригінальний тензор. Зміни, внесені у view, відобразяться в оригінальному тензорі, і навпаки, оскільки вони мають спільну область пам’яті.

1234567
import torch tensor = torch.arange(12) # Reshape a tensor to 4x3 reshaped_tensor = tensor.view(4, 3) print(f"Reshaped tensor: {reshaped_tensor}") # Original tensor remains unchanged print(f"Original tensor: {tensor}")
copy

Зміна форми тензорів за допомогою reshape

Метод .reshape() подібний до .view(), але може працювати у випадках, коли тензор не зберігається послідовно в пам’яті. Також не змінює оригінальний тензор.

12345
import torch tensor = torch.arange(12) # Reshape a tensor to 6x2 reshaped_tensor = tensor.reshape(6, 2) print(f"Reshaped tensor: {reshaped_tensor}")
copy

Використання від’ємних розмірностей

Можна використовувати -1 у формі, щоб PyTorch визначив розмір одного з вимірів автоматично на основі загальної кількості елементів.

12345
import torch tensor = torch.arange(12) # Automatically infer the second dimension inferred_tensor = tensor.view(2, -1) print("Inferred Tensor:", inferred_tensor)
copy

Розуміння уявлень тензорів

Уявлення тензора розділяє ті ж самі дані з оригінальним тензором. Зміни в уявленні впливають на оригінальний тензор і навпаки.

1234567
import torch tensor = torch.arange(12) view_tensor = tensor.view(2, 6) view_tensor[0, 0] = 999 # Changes in the view are reflected in the original tensor print("View Tensor:", view_tensor) print("Original Tensor:", tensor)
copy

Зміна розмірностей

Наступні два методи дозволяють додавати або видаляти розмірності:

  • unsqueeze(dim) додає нову розмірність у вказаній позиції;
  • squeeze(dim) видаляє розмірності розміру 1.
12345678
import torch tensor = torch.arange(12) # Add a new dimension unsqueezed_tensor = tensor.unsqueeze(0) # Add a batch dimension print(f"Unsqueezed tensor: {unsqueezed_tensor.shape}") # Remove a dimension of size 1 squeezed_tensor = unsqueezed_tensor.squeeze(0) print(f"Squeezed Tensor: {squeezed_tensor.shape}")
copy
question mark

Якою буде форма тензора після виконання наступного коду?

Select the correct answer

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

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

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

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