TensorFlow hija għodda versatili biex toħloq mudelli ta 'tagħlim bil-magni.
F'din il-kariga, ser inħarsu lejn kif toħloq sistema ta 'rikonoxximent tal-wiċċ b'TensorFlow, qafas ta' tagħlim tal-magni open-source. Se ngħaddu fuq il-proċessi essenzjali fil-ħolqien ta' sistema ta' rikonoxximent tal-wiċċ ta' suċċess, mill-ġbir u l-preparazzjoni tad-dejta għat-taħriġ u l-valutazzjoni ta' mudell.
Se tikseb esperjenza diretta b'TensorFlow biex toħloq rikonoxximent tal-wiċċ bl-għajnuna ta 'snippets ta' kodiċi u eżempji tad-dinja reali. Int mistieden issegwi hekk kif nipproċedu.
Introduzzjoni għal TensorFlow
TensorFlow hija librerija b'xejn u b'sors miftuħ. Hija kaxxa ta 'għodda matematika simbolika li tuża fluss tad-dejta u programmazzjoni differenzjabbli. Tista 'timmaniġġja firxa ta' kompiti magħha, inkluż fil-fond newrali netwerk taħriġ.
TensorFlow huwa qawwi u adattabbli. Bl-istess mod, hija għodda kbira għall-iżvilupp u l-iskjerament ta' mudelli ta' tagħlim tal-magni. Tista 'tibni mudelli kkumplikati b'diversi saffi u operazzjonijiet ta' tensor. Ukoll, mudelli mibnija minn qabel fil-librerija jistgħu jiġu rfinati għal bżonnijiet speċifiċi.
Barra minn hekk, TensorFlow għandu komunità ta 'utenti enormi u li qed tespandi. Għalhekk, hemm pletora ta 'informazzjoni u għajnuna għal individwi li huma ġodda għall-pjattaforma.
TensorFlow huwa popolari għal tagħlim magna parzjalment minħabba li jipprovdi fluss tax-xogħol minn tarf sa tarf. Allura, tista 'faċilment tibni, tħarreġ u tuża mudelli. Jipprovdi għodod u strateġiji għat-titjib u l-iskala tal-mudelli biex jaqblu ma 'domandi speċifiċi. Din tvarja minn pre-ipproċessar tad-dejta għall-iskjerament tal-mudell.
X'inhu Face Recognition?
Ir-rikonoxximent tal-wiċċ huwa a viżjoni tal-kompjuter kompitu li jidentifika l-identifikazzjoni ta’ persuna bbażata fuq wiċċha. Din it-teknika tirrikonoxxi l-karatteristiċi tal-wiċċ, bħall-forma u n-nisġa tal-għajnejn, l-imnieħer u l-ħalq.
U, tqabbelhom ma 'database ta' uċuħ magħrufa biex tidentifika taqbila. Ir-rikonoxximent tal-wiċċ għandu diversi użi, inklużi sistemi ta 'sigurtà, organizzazzjoni tar-ritratti, u awtentikazzjoni bijometrika.
L-eżattezza tal-algoritmi tar-rikonoxximent tal-wiċċ żdiedet sostanzjalment f'dawn l-aħħar snin bħala riżultat ta 'skoperti fit-tagħlim tal-magni.
Importazzjoni Libreriji Neċessarji
Qabel ma nibdew xi ħaġa, għandna bżonn li timporta l-libreriji meħtieġa għall-mudell tagħna. Tensorflow (tf) huwa importat u utilizzat biex jinħoloq u jħarreġ il-mudell. <(p>
“numpy” twettaq kalkoli matematiċi u pproċessar tad-dejta.
“matplotlib.pyplot” huwa importat bħala plt u użat għal dejta u viżwalizzazzjonijiet.
Fl-aħħarnett, "fetch lfw people" huwa importat minn sklearn. settijiet tad-dejta u użati biex jgħabbi s-sett tad-dejta tar-rikonoxximent tal-wiċċ. Din il-funzjoni hija parti mis-scikit-learn toolkit. Grazzi għal din il-funzjoni ma kellniex għalfejn intellgħu dataset ieħor. Dan diġà huwa mibni fi sckit-learn.
U, jagħtik aċċess għal firxa wiesgħa ta ' settijiet tad-dejta għat-tagħlim tal-magni applikazzjonijiet. F'dan ix-xenarju, nużaw il-metodu fetch lfw people biex nirkupraw is-sett tad-dejta "Labeled Faces in the Wild" (LFW). Jikkomprendi ritratti ta' wiċċ in-nies kif ukoll it-tikketti li jmorru magħhom.
Dawn il-libreriji huma kritiċi fl-implimentazzjoni u l-evalwazzjoni tal-mudell tagħna ta’ rikonoxximent tal-wiċċ.
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt from sklearn.datasets
import fetch_lfw_people
L-ipproċessar minn qabel u t-Tagħbija tas-Sett tad-Data tar-Rikonoxximent tal-Faċi
F'din il-parti, aħna nużaw il-funzjoni "fetch lfw people" biex tipproċessa minn qabel id-dejta tar-rikonoxximent tal-wiċċ. L-ewwel, nużaw fetch lfw people bl-għażla "min uċuħ għal kull persuna = 60". Dan jindika li rridu nkludu biss persuni fis-sett tad-dejta li għandhom mill-inqas 60 ritratt. Għalhekk, niżguraw li l-mudell tagħna jkollu dejta adegwata biex titgħallem. Ukoll, dan inaqqas il-periklu ta 'twaħħil żejjed.
Id-dejta u t-tikketti mill-oġġett tal-uċuħ huma mbagħad estratti u assenjati lill-varjabbli X u y. X hol.
Issa lesti nħarrġu l-mudell tagħna ta’ rikonoxximent tal-wiċċ bl-użu ta’ data u tikketti pproċessati minn qabel.
faces = fetch_lfw_people(min_faces_per_person=60)
X = faces.data
y = faces.target
target_names = faces.target_names
Qsim ta' Taħriġ u Settijiet tat-Test
F'dan il-pass, aħna naqsmu s-sett tad-dejta tar-rikonoxximent tal-wiċċ tagħna f'żewġ nofsijiet billi tuża l-metodu tal-qsim tat-test tal-ferrovija mill-għażla sklearn.model. L-għan ta 'din il-qasma huwa li tevalwa l-prestazzjoni tal-mudell tagħna wara t-taħriġ
Il-funzjoni tal-qasma tat-test tal-ferrovija taċċetta bħala input data X u tikketti y. U, taqsamhom f'settijiet ta 'taħriġ u testijiet. Aħna nagħżlu d-daqs tat-test=0.2 f'dan l-eżempju. Dan jimplika li 20% tad-dejta se tkun utilizzata bħala s-sett tat-test u 80% bħala s-sett tat-taħriġ. Barra minn hekk, nużaw stat każwali = 42 biex niżguraw li d-dejta tinqasam b'mod konsistenti kull darba li jitwettaq il-kodiċi.
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
Tħejjija tad-Data
L-għan tal-ipproċessar minn qabel tad-dejta huwa li titħejja għad-dħul fil-mudell. Id-dejta hija pproċessata minn qabel f'dan il-kodiċi billi kull punt tad-dejta jiġi diviż b'255.
X’qanqalna biex niksbu dan? In-normalizzazzjoni hija proċedura ta 'preproċessar użata fit-tagħlim tal-magni biex tiggarantixxi li l-karatteristiċi kollha jkunu fuq l-istess skala. F'dan ix-xenarju, id-diviżjoni b'255 tiskala d-dejta għal medda ta '0 sa 1, li hija pass normali ta' normalizzazzjoni tad-dejta tal-istampa.
Dan iħaffef il-konverġenza tal-mudell u jista 'jżid il-prestazzjoni tiegħu.
X_train = X_train / 255.0
X_test = X_test / 255.0
Ħolqien tal-Modalità
Irridu nidentifikaw l-individwu li wiċċu jidher fi stampa. F'dan il-każ, se nużaw netwerk kompletament konness, ħafna drabi magħruf bħala netwerk dens. Huwa netwerk newrali artifiċjali li ntuża biex jinħoloq il-mudell.
Netwerks newrali artifiċjali huma mmudellati wara kif jopera u jiġi organizzat il-moħħ tal-bniedem. Huma magħmulin minn nodi jew newroni li jipproċessaw l-informazzjoni li huma konnessi. Kull newron f'saff f'netwerk dens huwa marbut ma 'kull newron fis-saff ta' fuqu.
Il-mudell għandu erba 'saffi f'dan il-kodiċi. Biex tiġi mitmugħa fis-saff li jmiss, id-dejta tal-input hija ċċattjata fl-ewwel saff f'firxa ta 'dimensjoni waħda. In-newroni 128 u 64 fiż-żewġ saffi li ġejjin, għalhekk, huma kompletament konnessi.
Il-funzjoni ta 'attivazzjoni ReLU hija funzjoni ta' attivazzjoni unika użata minn dawn is-saffi. B'dan, nistgħu nġibu l-mudell biex jitgħallmu korrelazzjonijiet mhux lineari bejn l-inputs u l-outputs. L-aħħar saff juża l-funzjoni ta 'attivazzjoni softmax biex jagħmel tbassir. U, huwa saff kompletament konness b'ħafna newroni daqs kemm hemm klassijiet potenzjali.
model = tf.keras.models.Sequential([
tf.keras.layers.Flatten(input_shape=(62 * 47,)),
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dense(64, activation='relu'),
tf.keras.layers.Dense(len(target_names), activation='softmax')
])
Kumpilazzjoni tal-Mudell
Il-mudell huwa kkompilat bl-użu tal-funzjoni "kompila". Irridu nippreparaw il-mudell għat-taħriġ. Għalhekk, aħna se niddefinixxu l-ottimizzatur, il-funzjoni tat-telf, u l-metriċi li se jintużaw biex jivvalutaw il-mudell.
Waqt it-taħriġ, l-ottimizzatur huwa inkarigat li jbiddel il-parametri tal-mudell. L-ottimizzatur "adam" huwa teknika popolari ta 'ottimizzazzjoni ta' tagħlim profond.
Aħna nużaw il-funzjoni tat-telf biex nevalwaw il-prestazzjoni tal-mudell fuq id-dejta tat-taħriġ. Minħabba li t-tikketti fil-mira huma numri interi li jirriflettu l-klassi ta 'l-immaġni aktar milli vettori kodifikati one-hot, il-funzjoni ta' telf ta '"crossentropia kategorika skarsa" hija favorevoli.
Fl-aħħar nett, niddefinixxu l-metriċi biex nivvalutaw il-mudell, f'dan il-każ, "eżattezza".
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
Taħriġ Mudell
Se nużaw il-funzjoni "tajbin" biex inħarrġu l-mudell.
Se nkunu qed nipprovdu d-dejta tat-taħriġ (ferrovija X) u tikketti relatati (ferrovija y), kif ukoll nissettjaw in-numru ta’ epoki (iterazzjonijiet) biex jimxu bħala 10. Il-proċedura tat-taħriġ timmodifika l-piżijiet tal-mudell biex tnaqqas it-telf (id-differenza bejn tikketti mbassra u reali) u jtejbu l-eżattezza tad-dejta tat-taħriġ.
model.fit(X_train, y_train, epochs=10)
Mudell ta' Evalwazzjoni
Issa, għandna bżonn nivvalutaw il-mudell imħarreġ fuq id-dejta tat-test. Aħna nużaw it-telf tat-test u l-eżattezza tat-test jintużaw biex nivvalutaw il-prestazzjoni tal-mudell. Fuq it-test tad-dejta tat-test X u t-test tat-tikketti tat-test y, irridu nsejħu "il-funzjoni model.evaluate"
Il-funzjoni toħroġ l-eżattezza tat-test u t-telf tat-test. Il-varjabbli tat-telf tat-test u l-eżattezza tat-test, rispettivament, fihom dawn il-valuri. Fl-aħħarnett, nużaw il-funzjoni "istampar" biex toħroġ l-eżattezza tat-test.
test_loss, test_accuracy = model.evaluate(X_test, y_test)
print("Test accuracy:", test_accuracy)
Tbassir tal-Klassijiet u Ksib tal-Klassijiet Mbassra
Bl-użu tal-mudell tat-taħriġ u d-dejta tat-test, l-algoritmu jagħmel tbassir. Meta d-dejta tat-test tiġi mgħoddija lill-metodu "model.predict", toħroġ firxa ta 'previżjonijiet għal kull stampa fis-sett tat-test.
L-isem tal-klassi fil-mira għal kull stampa mbagħad jiġi rkuprat mil-lista "ismijiet fil-mira" billi tuża l-funzjoni "np.argmax" biex tidentifika l-indiċi bl-akbar probabbiltà mbassra. Dan l-indiċi mbagħad jintuża biex tiddetermina l-klassi mbassra għal kull immaġini.
Bl-użu ta 'komprensjoni ta' lista, il-previżjonijiet kollha fil-firxa ta '"tbassir" huma soġġetti għal dan il-metodu, li jirriżulta fil-lista "klassijiet mbassra".
predictions = model.predict(X_test)
predicted_classes = [target_names[np.argmax(prediction)] for prediction in predictions]
Viżwalizzazzjoni tal-Previżjonijiet
Issa nistgħu naraw kif jidher il-mudell tagħna.
Biex jiġi evalwat kemm il-mudell sejjer tajjeb, se jintwerew l-ewwel 10 ritratti u t-tbassir tagħhom. Se jpinġi r-ritratti fi skala griża u juri kemm il-klassi attwali tal-immaġni kif ukoll il-klassi mbassra mill-mudell bl-użu tal-modulu matplotlib.pyplot.
Il-funzjoni "imshow" tintuża mill-for loop biex tpinġi kull wieħed mill-ewwel 10 ritratti tas-sett tat-test. L-ismijiet tal-mira[y test[i]] u l-klassijiet imbassra[i] jintużaw biex jiddeterminaw il-klassi attwali u l-klassi mbassra tal-immaġni, rispettivament. It-titli ta' kull plott imbagħad jiġu indikati b'dawn il-klassifikazzjonijiet.
Fl-aħħarnett, il-plott jintwera bl-użu tal-metodu plt.show().
for i in range(10):
plt.imshow(X_test[i].reshape(62, 47), cmap='gray')
plt.title(f"True: {target_names[y_test[i]]}, Predicted:{predicted_classes[i]}")
plt.show()
Nagħlaq
TensorFlow joffri ambjent komplet u flessibbli għall-ħolqien ta 'mudelli ta' tagħlim tal-magni.
Bl-irfinar tal-mudell biex jissodisfa rekwiżiti partikolari jew billi żżid żviluppi ġodda fit-tagħlim tal-magni, l-eżattezza tal-mudell tista 'tiżdied saħansitra aktar.
TensorFlow u r-rikonoxximent tal-wiċċ x'aktarx se jintużaw dejjem aktar f'industriji bħal sistemi ta 'sigurtà, awtentikazzjoni bijometrika, u kura tas-saħħa fil-futur. Se nkunu qed naraw innovazzjonijiet affaxxinanti dalwaqt.
Ħalli Irrispondi