Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Forme e Dimensioni in PyTorch | Introduzione a PyTorch
Fondamenti di PyTorch

bookForme e Dimensioni in PyTorch

Analogamente agli array NumPy, la forma di un tensore ne determina le dimensioni. È possibile ispezionare la forma di un tensore utilizzando l'attributo .shape:

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

Rimodellare i tensori con view

Il metodo .view() crea una nuova vista del tensore con la forma specificata senza modificare il tensore originale. Il numero totale di elementi deve rimanere invariato.

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

Rimodellare i tensori con reshape

Il metodo .reshape() è simile a .view(), ma può gestire casi in cui il tensore non è memorizzato in modo contiguo in memoria. Inoltre, non modifica il tensore originale.

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

Utilizzo delle Dimensioni Negative

È possibile utilizzare -1 nella forma per permettere a PyTorch di dedurre la dimensione di una delle dimensioni in base al numero totale di elementi.

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

Comprensione delle View dei Tensori

Una view di un tensore condivide gli stessi dati con il tensore originale. Le modifiche apportate alla view influenzano il tensore originale e viceversa.

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

Modifica delle dimensioni

Le seguenti due funzioni permettono di aggiungere o rimuovere dimensioni:

  • unsqueeze(dim) aggiunge una nuova dimensione nella posizione specificata;
  • squeeze(dim) rimuove le dimensioni di dimensione 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

Quale sarà la forma del tensore dopo l'esecuzione del seguente codice?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 9

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Awesome!

Completion rate improved to 5

bookForme e Dimensioni in PyTorch

Scorri per mostrare il menu

Analogamente agli array NumPy, la forma di un tensore ne determina le dimensioni. È possibile ispezionare la forma di un tensore utilizzando l'attributo .shape:

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

Rimodellare i tensori con view

Il metodo .view() crea una nuova vista del tensore con la forma specificata senza modificare il tensore originale. Il numero totale di elementi deve rimanere invariato.

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

Rimodellare i tensori con reshape

Il metodo .reshape() è simile a .view(), ma può gestire casi in cui il tensore non è memorizzato in modo contiguo in memoria. Inoltre, non modifica il tensore originale.

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

Utilizzo delle Dimensioni Negative

È possibile utilizzare -1 nella forma per permettere a PyTorch di dedurre la dimensione di una delle dimensioni in base al numero totale di elementi.

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

Comprensione delle View dei Tensori

Una view di un tensore condivide gli stessi dati con il tensore originale. Le modifiche apportate alla view influenzano il tensore originale e viceversa.

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

Modifica delle dimensioni

Le seguenti due funzioni permettono di aggiungere o rimuovere dimensioni:

  • unsqueeze(dim) aggiunge una nuova dimensione nella posizione specificata;
  • squeeze(dim) rimuove le dimensioni di dimensione 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

Quale sarà la forma del tensore dopo l'esecuzione del seguente codice?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 9
some-alt