Vadnica za TensorFlow za začetnike
TensorFlow je eden najbolj priljubljenih ogrodji za globoko učenje in strojno učenje. TensorFlow, ki ga je razvila ekipa Google Brain, se pogosto uporablja v številnih raziskovalnih projektih in industrijskih aplikacijah. Ta članek ponuja podroben vodič, ki vam bo kot začetniku pomagal začeti uporabljati TensorFlow.
1. Razumevanje osnov TensorFlowa
Preden začnemo nameščati in uporabljati TensorFlow, je pomembno razumeti, kaj TensorFlow je in osnovne koncepte, ki stojijo za njim. TensorFlow je odprtokodni okvir za numerično računanje in strojno učenje. Za izvajanje numeričnih operacij uporablja grafe pretoka podatkov, kjer vozlišča v grafu predstavljajo matematične operacije, robovi pa večdimenzionalne podatkovne matrike (tenzorje), ki so med seboj povezane.
2. Namestitev TensorFlowa
Prvi korak pri uporabi TensorFlowa je njegova namestitev. Tukaj je opisano, kako namestiti TensorFlow z uporabo pipa, upravitelja paketov Python.
1. Namestitev Pythona:
Prepričajte se, da imate v sistemu nameščen Python. TensorFlow je v času pisanja tega besedila združljiv s Pythonom od 3.6 do 3.9. Python lahko prenesete z uradne spletne strani Pythona.
2. Virtualno okolje:
Zelo priporočljivo je ustvariti virtualno okolje za izolacijo vašega projekta TensorFlow:
“Pšš
python -m venv myenv
izvorna koda myenv/bin/activate Za uporabnike Mac/Linux
myenv\Scripts\activate Za uporabnike sistema Windows
""
3. Namestitev TensorFlowa:
Zdaj namestite TensorFlow z uporabo pip-a:
“Pšš
pip namestite tensorflow
""
3. Pozdravljen svet s TensorFlowom
Zdaj, ko je TensorFlow nameščen, ustvarimo preprost skript Python za preverjanje namestitve. Ustvarite novo datoteko Python in jo poimenujte `hello_tensorflow.py`.
"python
uvoz tenzorskega toka kot tf
Ustvari konstanto
pozdrav = tf.constant('Pozdravljeni, TensorFlow!')
Začni sejo
z tf.Session() kot sess:
rezultat = sess.run(pozdravljeni)
natisni (rezultat)
""
Prilagodite kodo v skladu z različico 2.x za TensorFlow:
"python
uvoz tenzorskega toka kot tf
Ustvari konstanto
pozdrav = tf.constant('Pozdravljeni, TensorFlow!')
Zaženi z uporabo evager izvajanja (privzeto vklopljeno)
izpis(pozdravljeni.numpy())
""
Shranite datoteko in nato zaženite:
“Pšš
python hello_tensorflow.py
""
4. Razumevanje tenzorjev in osnovnih operacij
Tenzorji so primarna podatkovna struktura v TensorFlowu, ki so večdimenzionalni nizi. Tukaj je nekaj primerov, ki vam bodo pomagali razumeti tenzorje:
"python
uvoz tenzorskega toka kot tf
Ustvarjanje tenzorjev
skalar = tf.konstanta(7) skalar
vektor = tf.konstanta([1, 2, 3]) vektor
matrika = tf.konstanta([[1, 2], [3, 4]]) matrika
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'Matrika: {matrika}')
print(f'Tensor 3D: {tensor3d}')
""
Za izvajanje osnovnih operacij na tenzorjih:
"python
a = tf.konstanta([[1, 2], [3, 4]])
b = tf.konstanta([[5, 6], [7, 8]])
Operacija seštevanja
seštej = tf.seštej(a, b)
Operacije množenja matrik
mul = tf.matmul(a, b)
print(f'Dodatek: {dodaj}')
print(f'Množenje matrik: {mul}')
""
5. Ustvarjanje preprostega modela nevronske mreže
Naslednji korak je ustvarjanje preprostega modela nevronske mreže. Z uporabo nabora podatkov MNIST, baze podatkov ročno napisanih slik številk, bomo zgradili model za klasifikacijo slik. Začnimo:
"python
uvoz tenzorskega toka kot tf
iz tensorflow.keras uvozi nabore podatkov, plasti, modele
Prenos nabora podatkov MNIST
(slike_vlaka, oznake_vlaka), (slike_testa, oznake_testa) = nabori_podatkov.mnist.naloži_podatke()
Normalizacija slike
slike_vlaka, testne_slike = slike_vlaka / 255.0, testne_slike / 255.0
Izdelava modela
model = modeli.Zaporedno([
sloji.Poravnaj(vhodna_oblika=(28, 28)),
layers.Dense(128, activation='relu'),
plasti.Gosto(10)
])
Zbiranje modela
model.compile(optimizer='adam',
izguba=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
metrics=['accuracy'])
Usposabljanje modela
model.fit(slike_vlakov, oznake_vlakov, epohe=5)
Testiranje modela
test_loss, test_acc = model.evaluate(test_images, test_labels)
print(f'Natančnost testa: {test_acc}')
""
Pojasnilo:
– Nabori podatkov: Uvozimo in naložimo nabor podatkov MNIST.
– Predobdelava: Normalizirajte nabor podatkov tako, da vrednosti slikovnih pik delite z 255.
– Model: Definiramo preprost model z dvema slojema. Prvi sloj je sloj `Flatten` (splošči), ki pretvori 2D sliko v 1D matriko. Drugi sloj je sloj `Dense` (gosta plast) s 128 nevroni in `relu` kot aktivacijsko funkcijo, zadnji pa je sloj `Dense` z 10 nevroni, ki predstavljajo 10 razredov.
– Prevajanje: Model prevedemo z uporabo optimizatorja `adam` in `SparseCategoricalCrossentropy` kot funkcije izgub.
– Učenje: Učenje modela traja 5 epoh.
– Vrednotenje: Vrednotenje modela glede na testne podatke.
6. Shranjevanje in nalaganje modelov
Po učenju modela ga lahko shranite za kasnejšo uporabo, ne da bi ga morali ponovno učiti. Takole shranite in naložite model:
"python
Shranjevanje modela
model.save('moj_model.h5')
Nalaganje modela
nov_model = tf.keras.models.naloži_model('moj_model.h5')
Preverjanje naloženega modela
izguba, acc = new_model.evaluate(testne_slike, testne_oznake)
print(f'Natančnost naloženega modela: {acc}')
""
Zaključek
Ta priročnik ponuja podroben uvod v začetek uporabe TensorFlowa za začetnike. Obravnavali smo namestitev, osnovne operacije s tenzorji in izgradnjo preprostega modela nevronske mreže z uporabo nabora podatkov MNIST. TensorFlow ponuja številne napredne zmogljivosti za raziskovanje, kot so napredna obdelava podatkov, bolj kompleksni modeli in uporaba TensorFlowa na napravah, kot so TPU-ji in grafični procesorji. Upamo, da vam bo ta vadnica pomagala pri začetku dela v svetu strojnega učenja s TensorFlowom.