„TensorFlow“ pamoka pradedantiesiems
„TensorFlow“ yra viena populiariausių gilaus mokymosi ir mašininio mokymosi sistemų. „Google Brain“ komandos sukurta „TensorFlow“ buvo plačiai naudojama daugelyje mokslinių tyrimų projektų ir pramoninių pritaikymų. Šiame straipsnyje pateikiama nuosekli pamoka, padėsianti jums, kaip pradedančiajam, pradėti naudotis „TensorFlow“.
1. „TensorFlow“ pagrindų supratimas
Prieš pradedant diegti ir naudoti „TensorFlow“, svarbu suprasti, kas yra „TensorFlow“ ir kokios yra pagrindinės jo sąvokos. „TensorFlow“ yra atvirojo kodo skaitmeninių skaičiavimų ir mašininio mokymosi sistema. Ji naudoja duomenų srautų grafikus skaitmeninėms operacijoms atlikti, kur grafiko mazgai vaizduoja matematines operacijas, o briaunos – tarp jų sujungtus daugiamačius duomenų masyvus (tenzorius).
2. „TensorFlow“ diegimas
Pirmasis „TensorFlow“ naudojimo žingsnis yra jo įdiegimas. Štai kaip įdiegti „TensorFlow“ naudojant „pip“ – „Python“ paketų tvarkyklę.
1. Python diegimas:
Įsitikinkite, kad jūsų sistemoje įdiegtas „Python“. Šio rašymo metu „TensorFlow“ suderinama su „Python 3.6“ iki „3.9“. „Python“ galite atsisiųsti iš oficialios „Python“ svetainės.
2. Virtuali aplinka:
Labai rekomenduojama sukurti virtualią aplinką, kad būtų galima izoliuoti „TensorFlow“ projektą:
„Šš“
python -m venv myenv
„source myenv/bin/activate“ skirta „Mac“ / „Linux“ vartotojams
„myenv\Scripts\activate“ skirta „Windows“ vartotojams
„“
3. „TensorFlow“ diegimas:
Dabar įdiekite „TensorFlow“ naudodami pip:
„Šš“
pip install tensorflow
„“
3. Sveikas, pasauli, su „TensorFlow“
Dabar, kai „TensorFlow“ įdiegtas, sukurkime paprastą „Python“ skriptą, kad patikrintume diegimą. Sukurkite naują „Python“ failą ir pavadinkite jį `hello_tensorflow.py`.
"" Python
importuoti tensorflow kaip tf
Sukurti konstantą
labas = tf.constant('Sveiki, TensorFlow!')
Pradėti sesiją
su tf.Session() kaip sess:
rezultatas = sess.run(labas)
spausdinti (rezultatas)
„“
Kodą pritaikykite pagal „TensorFlow“ 2.x versiją:
"" Python
importuoti tensorflow kaip tf
Sukurti konstantą
labas = tf.constant('Sveiki, TensorFlow!')
Vykdyti naudojant skubų vykdymą (įjungta pagal numatytuosius nustatymus)
spausdinti(labas.numpy())
„“
Išsaugokite failą, tada paleiskite:
„Šš“
python hello_tensorflow.py
„“
4. Tenzorių ir pagrindinių operacijų supratimas
Tenzoriai yra pagrindinė „TensorFlow“ duomenų struktūra – daugiamačiai masyvai. Pateikiame keletą pavyzdžių, kurie padės suprasti tenzorius:
"" Python
importuoti tensorflow kaip tf
Tenzorių kūrimas
skaliaras = tf. constant(7) skaliaras
vektorius = tf. constant([1, 2, 3]) vektorius
matrica = tf. constant([[1, 2], [3, 4]]) matrica
tensor3d = tf.constant([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]) 3D tenzorius
spausdinti(f'Skaliarinis: {skaliarinis}')
print(f'Vektorius: {vektorius}')
print(f'Matrica: {matrica}')
spausdinti(f'Tensor 3D: {tensor3d}')
„“
Norėdami atlikti pagrindines operacijas su tenzoriais:
"" Python
a = tf.constant([[1, 2], [3, 4]])
b = tf.constant([[5, 6], [7, 8]])
Sudėties operacija
pridėti = tf.pridėti(a, b)
Matricos daugybos operacijos
mul = tf.matmul(a, b)
print(f'Papildymas: {pridėti}')
print(f'Matricos daugyba: {mul}')
„“
5. Paprasto neuroninio tinklo modelio kūrimas
Kitas žingsnis – sukurti paprastą neuroninio tinklo modelį. Sukursime vaizdų klasifikavimo modelį naudodami MNIST duomenų rinkinį – ranka rašytų skaitmeninių vaizdų duomenų bazę. Pradėkime:
"" Python
importuoti tensorflow kaip tf
iš tensorflow.keras importuoti duomenų rinkinius, sluoksnius, modelius
MNIST duomenų rinkinio atsisiuntimas
(traukinio_vaizdai, traukinio_etiketės), (bandomieji_vaizdai, bandomieji_etiketės) = duomenų rinkiniai.mnist.load_data()
Vaizdo normalizavimas
traukinio_vaizdai, bandomieji_vaizdai = traukinio_vaizdai / 255.0, bandomieji_vaizdai / 255.0
Modelio kūrimas
modelis = modeliai.Nuoseklusis([
sluoksniai.Suplokštinti(įvesties_forma=(28, 28)),
layers.Dense(128, activation='relu'),
sluoksniai. Tankus (10)
])
Modelio kompiliavimas
model.compile(optimizer='adam',
nuostolis=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
metrics=['tikslumas'])
Modelio mokymas
modelis.fit(traukinio_vaizdai, traukinio_etiketės, epochos = 5)
Modelio testavimas
test_loss, test_acc = model.evaluate(test_images, test_labels)
print(f'Bandymo tikslumas: {test_acc}')
„“
Paaiškinimas:
– Duomenų rinkiniai: importuojame ir įkeliame MNIST duomenų rinkinį.
– Išankstinis apdorojimas: normalizuokite duomenų rinkinį, padaliję pikselių vertes iš 255.
– Modelis: Apibrėžiame paprastą modelį su dviem sluoksniais. Pirmasis sluoksnis yra „Plokštinimo“ sluoksnis, skirtas 2D vaizdui konvertuoti į 1D masyvą. Antrasis sluoksnis yra „Tankus“ sluoksnis su 128 neuronais ir „relu“ kaip aktyvinimo funkcija, o paskutinis yra „Tankus“ sluoksnis su 10 neuronų, atstovaujančių 10 klasių.
– Kompiliavimas: Modelį kompiliuojame naudodami optimizavimo įrankį „adam“, o nuostolių funkciją – „SparseCategoricalCrossentropy“.
– Mokymas: Modelio mokymas 5 epochoms.
– Įvertinti: įvertinti modelį pagal bandymų duomenis.
6. Modelių išsaugojimas ir įkėlimas
Apmokę modelį, galite jį išsaugoti vėlesniam naudojimui, jo neapmokydami iš naujo. Štai kaip išsaugoti ir įkelti modelį:
"" Python
Modelio išsaugojimas
model.save('my_model.h5')
Modelio įkėlimas
naujas_modelis = tf.keras.models.load_model('mano_modelis.h5')
Įkelto modelio patikrinimas
nuostolis, acc = new_model.evaluate(bandomieji_vaizdai, bandomieji_ženklai)
print(f'Įkelto modelio tikslumas: {acc}')
„“
Išvada
Šiame vadove pateikiama išsami įžanga į pradedantiesiems skirtą „TensorFlow“ naudojimo pradžią. Aptarėme diegimą, pagrindines tenzorių operacijas ir paprasto neuroninio tinklo modelio kūrimą naudojant MNIST duomenų rinkinį. „TensorFlow“ siūlo daug pažangių galimybių, pavyzdžiui, pažangų duomenų apdorojimą, sudėtingesnius modelius ir „TensorFlow“ naudojimą tokiuose įrenginiuose kaip TPU ir GPU. Tikimės, kad ši pamoka padės jums pradėti pažintį su mašininio mokymosi pasauliu naudojant „TensorFlow“.