Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Datatyypit | Osio
Practice
Projects
Quizzes & Challenges
Visat
Challenges
/
Syväoppiminen TensorFlow'lla
Osio 1. Luku 7
single

single

bookDatatyypit

Pyyhkäise näyttääksesi valikon

TensorFlow:n tuetut tietotyypit

TensorFlow tukee monipuolisesti erilaisia tietotyyppejä, jotka soveltuvat eri datan ja operaatioiden tarpeisiin. 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ä, joissa ei ole desimaaliosaa. Voi olla sekä positiivisia että negatiivisia arvoja;

  • 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 tyyppi voi tallentaa. Liukulukutyypeissä suurempi numero nimessä viittaa myös parempaan laskennalliseen tarkkuuteen.

TensorFlow:ssa on käytettävissä myös muita tietotyyppejä, mutta aloittelijoille on tärkeää tutustua ensin näihin perusmuotoihin. Kattavan listan TensorFlow:n tukemista tietotyypeistä löydät tältä sivulta TensorFlow:n dokumentaatiosta.

Datan tyypin 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 luontifunktiot käyttävät tätä lähestymistapaa. Tämä on käytettävissä esimerkiksi metodeissa 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 suoraa tietotyypin määrittelyä? Tai ehkä sinulla on jo tietyn tyyppinen tensori ja tarvitset sen muuttamista. Näissä tapauksissa sinun täytyy muuntaa tensorit yhdestä tietotyypistä toiseen. Tämä on erityisen tärkeää, koska tietyt neuroverkkotoiminnot tai -kerrokset vaativat usein syötteitä tietyssä muodossa, pääasiassa liukulukuina.

Voit käyttää tf.cast()-funktiota tähän:

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

Huomaa, että kun muunnetaan liukulukutyypistä kokonaislukutyyppiin, TensorFlow suorittaa lattiatoiminnon eli poistaa desimaaliosan. Näin ollen 3.8 muuttuu arvoksi 3 ja -1.2 arvoksi -1.

Note
Huomio

Ole varovainen muuttaessasi tietotyyppejä, erityisesti siirtyessäsi vähemmän tarkkaan tyyppiin. Voit menettää tietoa 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ämän tensorin tietotyyppi on 64-bittinen liukuluku.
  2. Muunna initial_tensor tensoriksi nimeltä converted_tensor, jonka tietotyyppi on 16-bittinen liukuluku.

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

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

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

some-alt