Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Muodot ja Dimensiot PyTorchissa | Osio
Practice
Projects
Quizzes & Challenges
Visat
Challenges
/
Pytorch-Osaamisen Perusteet ML-Insinöörille

bookMuodot ja Dimensiot PyTorchissa

Samoin kuin NumPy-taulukoissa, tensorin muoto määrittää sen ulottuvuudet. Tensorin muotoa voi tarkastella käyttämällä .shape-attribuuttia:

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

Tensorien muodon muuttaminen view-metodilla

.view()-metodi luo uuden näkymän tensorista määritetyllä muodolla muuttamatta alkuperäistä tensoria. Alkiomäärän täytyy pysyä samana.

Note
Määritelmä

View on uusi tensori, jolla on eri muoto, mutta joka jakaa saman datan alkuperäisen tensorin kanssa. Muutokset näkymään vaikuttavat alkuperäiseen tensoriin ja päinvastoin, koska ne jakavat saman taustamuistin.

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

Tensorien uudelleenmuotoilu reshape-metodilla

.reshape()-metodi on samankaltainen kuin .view(), mutta se pystyy käsittelemään tilanteita, joissa tensori ei ole tallennettu yhtenäisesti muistiin. Se ei myöskään muuta alkuperäistä tensoria.

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

Negatiivisten ulottuvuuksien käyttö

Voit käyttää -1 muodon määrittelyssä, jolloin PyTorch päättelee yhden ulottuvuuden koon elementtien kokonaismäärän perusteella.

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

Tensorsi näkymien ymmärtäminen

Tensorsin näkymä jakaa saman datan alkuperäisen tensorsin kanssa. Muutokset näkymään vaikuttavat alkuperäiseen tensorsiin ja päinvastoin.

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

Ulottuvuuksien muuttaminen

Seuraavat kaksi menetelmää mahdollistavat ulottuvuuksien lisäämisen tai poistamisen:

  • unsqueeze(dim) lisää uuden ulottuvuuden määritettyyn kohtaan;
  • squeeze(dim) poistaa yksikokoiset ulottuvuudet.
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

Mikä on tensorin muoto seuraavan koodin suorittamisen jälkeen?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 9

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

bookMuodot ja Dimensiot PyTorchissa

Pyyhkäise näyttääksesi valikon

Samoin kuin NumPy-taulukoissa, tensorin muoto määrittää sen ulottuvuudet. Tensorin muotoa voi tarkastella käyttämällä .shape-attribuuttia:

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

Tensorien muodon muuttaminen view-metodilla

.view()-metodi luo uuden näkymän tensorista määritetyllä muodolla muuttamatta alkuperäistä tensoria. Alkiomäärän täytyy pysyä samana.

Note
Määritelmä

View on uusi tensori, jolla on eri muoto, mutta joka jakaa saman datan alkuperäisen tensorin kanssa. Muutokset näkymään vaikuttavat alkuperäiseen tensoriin ja päinvastoin, koska ne jakavat saman taustamuistin.

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

Tensorien uudelleenmuotoilu reshape-metodilla

.reshape()-metodi on samankaltainen kuin .view(), mutta se pystyy käsittelemään tilanteita, joissa tensori ei ole tallennettu yhtenäisesti muistiin. Se ei myöskään muuta alkuperäistä tensoria.

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

Negatiivisten ulottuvuuksien käyttö

Voit käyttää -1 muodon määrittelyssä, jolloin PyTorch päättelee yhden ulottuvuuden koon elementtien kokonaismäärän perusteella.

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

Tensorsi näkymien ymmärtäminen

Tensorsin näkymä jakaa saman datan alkuperäisen tensorsin kanssa. Muutokset näkymään vaikuttavat alkuperäiseen tensorsiin ja päinvastoin.

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

Ulottuvuuksien muuttaminen

Seuraavat kaksi menetelmää mahdollistavat ulottuvuuksien lisäämisen tai poistamisen:

  • unsqueeze(dim) lisää uuden ulottuvuuden määritettyyn kohtaan;
  • squeeze(dim) poistaa yksikokoiset ulottuvuudet.
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

Mikä on tensorin muoto seuraavan koodin suorittamisen jälkeen?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 9
some-alt