Форми та розміри у PyTorch
Аналогічно до масивів NumPy, форма тензора визначає його розмірності. Переглянути форму тензора можна за допомогою атрибута .shape:
123import torch tensor = torch.tensor([[1, 2, 3], [4, 5, 6]]) print(f"Tensor shape: {tensor.shape}")
Зміна форми тензорів за допомогою view
Метод .view() створює нове представлення тензора із заданою формою без зміни оригінального тензора. Загальна кількість елементів повинна залишатися незмінною.
1234567import 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}")
Зміна форми тензорів за допомогою reshape
Метод .reshape() подібний до .view(), але може працювати у випадках, коли тензор не зберігається послідовно в пам'яті. Також не змінює оригінальний тензор.
12345import torch tensor = torch.arange(12) # Reshape a tensor to 6x2 reshaped_tensor = tensor.reshape(6, 2) print(f"Reshaped tensor: {reshaped_tensor}")
Використання від’ємних розмірностей
Можна використовувати -1 у формі, щоб PyTorch визначив розмір одного з вимірів на основі загальної кількості елементів.
12345import torch tensor = torch.arange(12) # Automatically infer the second dimension inferred_tensor = tensor.view(2, -1) print("Inferred Tensor:", inferred_tensor)
Розуміння представлень тензорів
Представлення тензора має спільні дані з оригінальним тензором. Зміни у представленні впливають на оригінальний тензор і навпаки.
1234567import 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)
Зміна розмірностей
Наступні два методи дозволяють додавати або видаляти розмірності:
unsqueeze(dim)додає нову розмірність у вказаній позиції;squeeze(dim)видаляє розмірності розміру 1.
12345678import 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}")
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
What is the difference between view() and reshape() in PyTorch?
Can you explain how negative dimensions work when reshaping tensors?
How do unsqueeze() and squeeze() affect the shape of a tensor?
Awesome!
Completion rate improved to 5
Форми та розміри у PyTorch
Свайпніть щоб показати меню
Аналогічно до масивів NumPy, форма тензора визначає його розмірності. Переглянути форму тензора можна за допомогою атрибута .shape:
123import torch tensor = torch.tensor([[1, 2, 3], [4, 5, 6]]) print(f"Tensor shape: {tensor.shape}")
Зміна форми тензорів за допомогою view
Метод .view() створює нове представлення тензора із заданою формою без зміни оригінального тензора. Загальна кількість елементів повинна залишатися незмінною.
1234567import 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}")
Зміна форми тензорів за допомогою reshape
Метод .reshape() подібний до .view(), але може працювати у випадках, коли тензор не зберігається послідовно в пам'яті. Також не змінює оригінальний тензор.
12345import torch tensor = torch.arange(12) # Reshape a tensor to 6x2 reshaped_tensor = tensor.reshape(6, 2) print(f"Reshaped tensor: {reshaped_tensor}")
Використання від’ємних розмірностей
Можна використовувати -1 у формі, щоб PyTorch визначив розмір одного з вимірів на основі загальної кількості елементів.
12345import torch tensor = torch.arange(12) # Automatically infer the second dimension inferred_tensor = tensor.view(2, -1) print("Inferred Tensor:", inferred_tensor)
Розуміння представлень тензорів
Представлення тензора має спільні дані з оригінальним тензором. Зміни у представленні впливають на оригінальний тензор і навпаки.
1234567import 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)
Зміна розмірностей
Наступні два методи дозволяють додавати або видаляти розмірності:
unsqueeze(dim)додає нову розмірність у вказаній позиції;squeeze(dim)видаляє розмірності розміру 1.
12345678import 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}")
Дякуємо за ваш відгук!