Forme 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:
123import torch tensor = torch.tensor([[1, 2, 3], [4, 5, 6]]) print(f"Tensor shape: {tensor.shape}")
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.
Una view è un nuovo tensore con una forma diversa che condivide gli stessi dati del tensore originale. Le modifiche apportate alla view si rifletteranno nel tensore originale, e viceversa, poiché condividono la stessa memoria sottostante.
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}")
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.
12345import torch tensor = torch.arange(12) # Reshape a tensor to 6x2 reshaped_tensor = tensor.reshape(6, 2) print(f"Reshaped tensor: {reshaped_tensor}")
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.
12345import torch tensor = torch.arange(12) # Automatically infer the second dimension inferred_tensor = tensor.view(2, -1) print("Inferred Tensor:", inferred_tensor)
Comprendere le viste dei tensori
Una vista di un tensore condivide gli stessi dati con il tensore originale. Le modifiche apportate alla vista influenzano il tensore originale e viceversa.
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)
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.
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}")
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
Fantastico!
Completion tasso migliorato a 5
Forme 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:
123import torch tensor = torch.tensor([[1, 2, 3], [4, 5, 6]]) print(f"Tensor shape: {tensor.shape}")
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.
Una view è un nuovo tensore con una forma diversa che condivide gli stessi dati del tensore originale. Le modifiche apportate alla view si rifletteranno nel tensore originale, e viceversa, poiché condividono la stessa memoria sottostante.
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}")
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.
12345import torch tensor = torch.arange(12) # Reshape a tensor to 6x2 reshaped_tensor = tensor.reshape(6, 2) print(f"Reshaped tensor: {reshaped_tensor}")
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.
12345import torch tensor = torch.arange(12) # Automatically infer the second dimension inferred_tensor = tensor.view(2, -1) print("Inferred Tensor:", inferred_tensor)
Comprendere le viste dei tensori
Una vista di un tensore condivide gli stessi dati con il tensore originale. Le modifiche apportate alla vista influenzano il tensore originale e viceversa.
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)
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.
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}")
Grazie per i tuoi commenti!