Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Tietotyypit | Tensorit
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
Johdanto TensorFlow'hun

bookTietotyypit

Datan tyypit

Tässä osiossa perehdytään datan tyyppeihin TensorFlow'ssa. Samoin kuin ohjelmointikielet luokittelevat luvut ja tekstin tyyppeihin, kuten kokonaisluvut, liukuluvut tai merkkijonot, TensorFlow'n tensorit sisältävät myös omat erityiset tietotyyppinsä.

Saatavilla olevat tietotyypit TensorFlow'ssa

TensorFlow tukee useita erilaisia tietotyyppejä, jotka soveltuvat erilaisiin datoihin ja operaatioihin. Yleisimmin käytettyjä tyyppejä ovat:

  • tf.float16, tf.float32, tf.float64: liukulukuja, joissa desimaaliosalla on merkitystä. Nimen numero (esim. 16 kohdassa tf.float16) kertoo käytettyjen bittien määrän. tf.float32 on yleinen valinta, koska se tarjoaa hyvän tasapainon tarkkuuden ja laskentanopeuden välillä;

  • tf.int8, tf.int16, tf.int32, tf.int64: kokonaislukutyyppejä, eli lukuja ilman desimaalipistettä. Voi olla sekä positiivisia että negatiivisia;

  • tf.uint8, tf.uint16, tf.uint32, tf.uint64: 'u' tarkoittaa 'unsigned' eli nämä kokonaisluvut ovat aina epänegatiivisia;

  • tf.bool: edustaa totuusarvoja (True tai False);

  • tf.string: tekstidatalle.

Note
Huomio

Kokonaislukutyypeissä suurempi numero nimessä tarkoittaa vain laajempaa arvoaluetta, jonka se voi tallentaa. Liukulukutyypeissä suurempi numero nimessä viittaa myös parempaan laskennalliseen tarkkuuteen.

TensorFlowissa on saatavilla useampia tietotyyppejä, mutta aloittelijoille on tärkeää tutustua ensin näihin ensisijaisiin tyyppeihin. Kattavan luettelon TensorFlow'n tukemista tietotyypeistä löydät tältä sivulta TensorFlow'n dokumentaatiosta.

Tietotyypin asettaminen tensorin luomisen yhteydessä

Kun alustat tensorin, voit määrittää sen tyypin käyttämällä dtype-argumenttia:

123456789101112
import tensorflow as tf # Creating a tensor of type `float16` tensor_float = tf.constant([1.2, 2.3, 3.4], dtype=tf.float16) # Creating a tensor of type `int64` tensor_int = tf.constant([1, 2, 3], dtype=tf.int64) # Display tensors print(tensor_float) print('-' * 50) print(tensor_int)
copy
Note
Huomio

Monet tensorin luontitoiminnot käyttävät tätä lähestymistapaa. Tämä koskee esimerkiksi metodeja kuten tf.Variable(), tf.zeros(), tf.ones(), tf.random.normal(), tf.random.uniform() sekä myös tf.convert_to_tensor().

Datan tyyppien muuntaminen

Entä jos käyttämäsi funktio ei salli datan tyypin suoraa määrittelyä? Tai ehkä sinulla on jo tietyn tyyppinen tensori ja tarvitset sen muuttamista. Näissä tapauksissa täytyy muuntaa tensorit tyypistä toiseen. Tämä on erityisen tärkeää, koska tietyt neuroverkkojen operaatiot tai kerrokset vaativat usein syötteitä tietyssä muodossa, pääasiassa liukulukuina.

Tähän voidaan käyttää tf.cast()-funktiota:

123456789101112
import tensorflow as tf # Create a tensor tensor_float = tf.constant([-1.2, 2.3, 3.8]) # Convert our `tensor_float` from `float32` to `int32` tensor_int_converted = tf.cast(tensor_float, dtype=tf.int32) # Display a tensor print(tensor_float) print('-' * 50) print(tensor_int_converted)
copy

Muista, että muunnettaessa liukulukutyypistä kokonaislukutyyppiin TensorFlow suorittaa lattiaoperaation, eli desimaaliosa jätetään pois. Näin ollen 3.8 muuttuu arvoksi 3 ja -1.2 arvoksi -1.

Note
Huomio

Ole varovainen muuttaessasi tietotyyppejä, erityisesti siirryttäessä vähemmän tarkkaan tyyppiin. Tietoa saattaa hävitä prosessin aikana.

Tehtävä

Swipe to start coding

Tehtävänäsi on luoda tietyn tietotyypin tensori ja muuntaa se toiseen tietotyyppiin.

  1. Luo tensori nimeltä initial_tensor, jonka muoto on (3, 3) ja jonka arvot ovat normaalijakautuneita. Varmista, että tällä tensorilla on 64-bittinen liukulukutyyppi.
  2. Muunna initial_tensor tensoriksi nimeltä converted_tensor, jonka tietotyyppi on 16-bittinen liukulukutyyppi.

Ratkaisu

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 7
single

single

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

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

Suggested prompts:

What are some practical examples of when I would need to change a tensor's data type?

Can you explain the difference between signed and unsigned integer types in TensorFlow?

How do I check the data type of an existing tensor?

close

bookTietotyypit

Pyyhkäise näyttääksesi valikon

Datan tyypit

Tässä osiossa perehdytään datan tyyppeihin TensorFlow'ssa. Samoin kuin ohjelmointikielet luokittelevat luvut ja tekstin tyyppeihin, kuten kokonaisluvut, liukuluvut tai merkkijonot, TensorFlow'n tensorit sisältävät myös omat erityiset tietotyyppinsä.

Saatavilla olevat tietotyypit TensorFlow'ssa

TensorFlow tukee useita erilaisia tietotyyppejä, jotka soveltuvat erilaisiin datoihin ja operaatioihin. Yleisimmin käytettyjä tyyppejä ovat:

  • tf.float16, tf.float32, tf.float64: liukulukuja, joissa desimaaliosalla on merkitystä. Nimen numero (esim. 16 kohdassa tf.float16) kertoo käytettyjen bittien määrän. tf.float32 on yleinen valinta, koska se tarjoaa hyvän tasapainon tarkkuuden ja laskentanopeuden välillä;

  • tf.int8, tf.int16, tf.int32, tf.int64: kokonaislukutyyppejä, eli lukuja ilman desimaalipistettä. Voi olla sekä positiivisia että negatiivisia;

  • tf.uint8, tf.uint16, tf.uint32, tf.uint64: 'u' tarkoittaa 'unsigned' eli nämä kokonaisluvut ovat aina epänegatiivisia;

  • tf.bool: edustaa totuusarvoja (True tai False);

  • tf.string: tekstidatalle.

Note
Huomio

Kokonaislukutyypeissä suurempi numero nimessä tarkoittaa vain laajempaa arvoaluetta, jonka se voi tallentaa. Liukulukutyypeissä suurempi numero nimessä viittaa myös parempaan laskennalliseen tarkkuuteen.

TensorFlowissa on saatavilla useampia tietotyyppejä, mutta aloittelijoille on tärkeää tutustua ensin näihin ensisijaisiin tyyppeihin. Kattavan luettelon TensorFlow'n tukemista tietotyypeistä löydät tältä sivulta TensorFlow'n dokumentaatiosta.

Tietotyypin asettaminen tensorin luomisen yhteydessä

Kun alustat tensorin, voit määrittää sen tyypin käyttämällä dtype-argumenttia:

123456789101112
import tensorflow as tf # Creating a tensor of type `float16` tensor_float = tf.constant([1.2, 2.3, 3.4], dtype=tf.float16) # Creating a tensor of type `int64` tensor_int = tf.constant([1, 2, 3], dtype=tf.int64) # Display tensors print(tensor_float) print('-' * 50) print(tensor_int)
copy
Note
Huomio

Monet tensorin luontitoiminnot käyttävät tätä lähestymistapaa. Tämä koskee esimerkiksi metodeja kuten tf.Variable(), tf.zeros(), tf.ones(), tf.random.normal(), tf.random.uniform() sekä myös tf.convert_to_tensor().

Datan tyyppien muuntaminen

Entä jos käyttämäsi funktio ei salli datan tyypin suoraa määrittelyä? Tai ehkä sinulla on jo tietyn tyyppinen tensori ja tarvitset sen muuttamista. Näissä tapauksissa täytyy muuntaa tensorit tyypistä toiseen. Tämä on erityisen tärkeää, koska tietyt neuroverkkojen operaatiot tai kerrokset vaativat usein syötteitä tietyssä muodossa, pääasiassa liukulukuina.

Tähän voidaan käyttää tf.cast()-funktiota:

123456789101112
import tensorflow as tf # Create a tensor tensor_float = tf.constant([-1.2, 2.3, 3.8]) # Convert our `tensor_float` from `float32` to `int32` tensor_int_converted = tf.cast(tensor_float, dtype=tf.int32) # Display a tensor print(tensor_float) print('-' * 50) print(tensor_int_converted)
copy

Muista, että muunnettaessa liukulukutyypistä kokonaislukutyyppiin TensorFlow suorittaa lattiaoperaation, eli desimaaliosa jätetään pois. Näin ollen 3.8 muuttuu arvoksi 3 ja -1.2 arvoksi -1.

Note
Huomio

Ole varovainen muuttaessasi tietotyyppejä, erityisesti siirryttäessä vähemmän tarkkaan tyyppiin. Tietoa saattaa hävitä prosessin aikana.

Tehtävä

Swipe to start coding

Tehtävänäsi on luoda tietyn tietotyypin tensori ja muuntaa se toiseen tietotyyppiin.

  1. Luo tensori nimeltä initial_tensor, jonka muoto on (3, 3) ja jonka arvot ovat normaalijakautuneita. Varmista, että tällä tensorilla on 64-bittinen liukulukutyyppi.
  2. Muunna initial_tensor tensoriksi nimeltä converted_tensor, jonka tietotyyppi on 16-bittinen liukulukutyyppi.

Ratkaisu

Switch to desktopVaihda työpöytään todellista harjoitusta vartenJatka siitä, missä olet käyttämällä jotakin alla olevista vaihtoehdoista
Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 7
single

single

some-alt