Форми та Розміри у 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}")
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
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}")
Дякуємо за ваш відгук!