TensorFlow tutorijal za početnike
TensorFlow je jedan od najpopularnijih frameworka za duboko učenje i mašinsko učenje. Razvijen od strane tima Google Brain, TensorFlow se široko koristi u brojnim istraživačkim projektima i industrijskim primjenama. Ovaj članak pruža detaljan vodič koji će vam, kao početniku, pomoći da započnete s TensorFlowom.
1. Razumijevanje osnova TensorFlow-a
Prije nego što počnemo instalirati i koristiti TensorFlow, važno je razumjeti šta je TensorFlow i osnovne koncepte koji stoje iza njega. TensorFlow je okvir otvorenog koda za numeričko računanje i mašinsko učenje. Koristi grafove toka podataka za izvođenje numeričkih operacija, gdje čvorovi u grafu predstavljaju matematičke operacije, a ivice predstavljaju višedimenzionalne nizove podataka (tenzore) povezane između njih.
2. Instalacija TensorFlow-a
Prvi korak u korištenju TensorFlowa je njegova instalacija. Evo kako instalirati TensorFlow pomoću pip-a, Python upravitelja paketa.
1. Instalacija Pythona:
Provjerite da li imate Python instaliran na svom sistemu. TensorFlow je kompatibilan sa Pythonom od 3.6 do 3.9 u vrijeme pisanja ovog teksta. Python možete preuzeti sa službene web stranice Pythona.
2. Virtualno okruženje:
Preporučuje se kreiranje virtuelnog okruženja kako biste izolovali svoj TensorFlow projekat:
"Šš"
python -m venv myenv
izvorni kod myenv/bin/activate Za korisnike Maca/Linuksa
myenv\Scripts\activate Za korisnike Windowsa
"`
3. Instalacija TensorFlow-a:
Sada instalirajte TensorFlow koristeći pip:
"Šš"
pip install tensorflow
"`
3. Zdravo svijete sa TensorFlow-om
Sada kada je TensorFlow instaliran, kreirajmo jednostavnu Python skriptu za provjeru instalacije. Kreirajte novu Python datoteku i nazovite je `hello_tensorflow.py`.
“`python
import tensorflow kao tf
Kreiraj konstantu
zdravo = tf.constant('Zdravo, TensorFlow!')
Započni sesiju
sa tf.Session() kao sess:
rezultat = sess.run(zdravo)
štampa (rezultat)
"`
Prilagodite kod prema TensorFlow verziji 2.x:
“`python
import tensorflow kao tf
Kreiraj konstantu
zdravo = tf.constant('Zdravo, TensorFlow!')
Pokreni koristeći eager execution (uključeno prema zadanim postavkama)
print(hello.numpy())
"`
Sačuvajte datoteku, a zatim pokrenite:
"Šš"
python hello_tensorflow.py
"`
4. Razumijevanje tenzora i osnovnih operacija
Tenzori su primarna struktura podataka u TensorFlowu, koji predstavljaju višedimenzionalne nizove. Evo nekoliko primjera koji će vam pomoći da razumijete tenzore:
“`python
import tensorflow kao tf
Kreiranje tenzora
skalar = tf. konstanta(7) skalar
vektor = tf.konstanta([1, 2, 3]) vektor
matrica = tf. konstanta([[1, 2], [3, 4]]) matrica
tensor3d = tf.constant([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]) 3D tenzor
print(f'Skalar: {skalar}')
print(f'Vektor: {vektor}')
print(f'Matrica: {matrica}')
print(f'Tensor 3D: {tensor3d}')
"`
Za izvođenje osnovnih operacija na tenzorima:
“`python
a = tf.konstanta([[1, 2], [3, 4]])
b = tf.konstanta([[5, 6], [7, 8]])
Operacija sabiranja
sabiranje = tf.sabiranje(a, b)
Operacije množenja matrica
mul = tf.matmul(a, b)
print(f'Sabir: {dodaj}')
print(f'Množenje Matrice: {mul}')
"`
5. Kreiranje jednostavnog modela neuronske mreže
Sljedeći korak je kreiranje jednostavnog modela neuronske mreže. Izgradit ćemo model klasifikacije slika koristeći MNIST skup podataka, bazu podataka slika rukom pisanih cifara. Počnimo:
“`python
import tensorflow kao tf
iz tensorflow.keras uvozi skupove podataka, slojeve, modele
Preuzimanje MNIST skupa podataka
(slike_voza, oznake_voza), (testne_slike, testne_oznake) = datasets.mnist.load_data()
Normalizacija slike
slike_voza, testne_slike = slike_voza / 255.0, testne_slike / 255.0
Izrada modela
model = modeli.Sekvencijalno([
slojevi. Izravnaj(ulazni_oblik=(28, 28)),
layers.Dense(128, activation='relu'),
slojevi.Gusta(10)
])
Kompilacija modela
model.compile(optimizer='adam',
gubitak=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
metrics=['preciznost'])
Obuka modela
model.fit(slike_voza, oznake_voza, epohe=5)
Testiranje modela
test_gubitak, test_pristup = model.evaluate(test_slike, test_oznake)
print(f'Tačnost testa: {test_acc}')
"`
Objašnjenje:
– Skupovi podataka: Uvozimo i učitavamo skup podataka MNIST.
– Prethodna obrada: Normalizirajte skup podataka dijeljenjem vrijednosti piksela sa 255.
– Model: Definiramo jednostavan model s dva sloja. Prvi sloj je sloj `Flatten` koji pretvara 2D sliku u 1D niz. Drugi sloj je sloj `Dense` sa 128 neurona i `relu` kao aktivacijskom funkcijom, a posljednji je sloj `Dense` s 10 neurona koji predstavljaju 10 klasa.
– Kompajliranje: Model kompajliramo koristeći optimizator `adam` i `SparseCategoricalCrossentropy` kao funkciju gubitka.
– Trening: Trenirajte model tokom 5 epoha.
– Evaluacija: Procijenite model u odnosu na testne podatke.
6. Spremanje i učitavanje modela
Nakon što obučite model, možda ćete ga htjeti sačuvati za kasniju upotrebu bez potrebe za ponovnim obučavanjem. Evo kako sačuvati i učitati model:
“`python
Spremanje modela
model.save('my_model.h5')
Učitavanje modela
novi_model = tf.keras.models.load_model('moj_model.h5')
Verifikacija učitanog modela
gubitak, acc = new_model.evaluate(testne_slike, testne_oznake)
print(f'Tačnost učitanog modela: {acc}')
"`
Zaključak
Ovaj vodič pruža detaljan uvod u početak rada s TensorFlowom za početnike. Obradili smo instalaciju, osnovne tenzorske operacije i izgradnju jednostavnog modela neuronske mreže koristeći MNIST skup podataka. TensorFlow nudi mnoge napredne mogućnosti za istraživanje, kao što su napredna obrada podataka, složeniji modeli i korištenje TensorFlowa na uređajima poput TPU-ova i GPU-ova. Nadamo se da će vam ovaj tutorijal pomoći da započnete svijet mašinskog učenja s TensorFlowom.