Is uirlis ilúsáideach é TensorFlow chun samhlacha meaisínfhoghlama a chruthú.
Sa phost seo, féachfaimid ar conas córas aitheantais aghaidh a chruthú le TensorFlow, creat foghlama meaisín foinse oscailte. Rachaimid thar na próisis riachtanacha maidir le córas aitheantais aghaidh rathúil a chruthú, ó shonraí a bhailiú agus a ullmhú go dtí múnla a oiliúint agus a mheasúnú.
Gheobhaidh tú taithí phearsanta le TensorFlow chun aitheantas aghaidhe a chruthú le cabhair ó ghearrthóga cód agus samplaí ón saol fíor. Tá fáilte romhat leanúint ar aghaidh agus muid ag dul ar aghaidh.
Réamhrá le TensorFlow
Is leabharlann foinse oscailte saor in aisce é TensorFlow. Is bosca uirlisí matamaitice siombalach é a úsáideann dataflow agus ríomhchlárú difreálach. Is féidir leat raon tascanna a láimhseáil leis, lena n-áirítear domhain líonra neodrach oiliúna.
Tá TensorFlow cumhachtach agus inoiriúnaithe. Mar an gcéanna, is uirlis iontach é le haghaidh forbairt agus samhlacha meaisínfhoghlama a úsáid. Is féidir leat samhlacha casta a thógáil le roinnt sraitheanna agus oibríochtaí tensor. Chomh maith leis sin, is féidir samhlacha réamhthógtha sa leabharlann a mhionchoigeartú do riachtanais shonracha.
Ina theannta sin, tá pobal úsáideoirí ollmhór agus méadaitheach ag TensorFlow. Mar sin, tá raidhse faisnéise agus cabhrach ar fáil do dhaoine aonair atá nua don ardán.
Tá tóir ar TensorFlow foghlaim meaisín go páirteach toisc go soláthraíonn sé sreabhadh oibre deireadh le deireadh. Mar sin, is féidir leat samhlacha a thógáil, a oiliúint agus a imscaradh go héasca. Soláthraíonn sé uirlisí agus straitéisí chun samhlacha a fheabhsú agus a scálú chun freastal ar éilimh shonracha. Athraíonn sé ó réamhphróiseáil sonraí go húsáid samhla.
Cad is Aitheantas Aghaidhe ann?
Tá aitheantas aghaidhe a fís ríomhaire tasc a shainaithníonn aitheantas duine bunaithe ar a aghaidh. Aithníonn an teicníc seo tréithe aghaidhe, mar chruth agus uigeacht na súl, na srón agus an bhéil.
Agus, cuireann sé iad i gcomparáid le bunachar sonraí d’aghaidheanna aitheanta chun meaits a aithint. Tá úsáidí éagsúla ag aithint aghaidhe, lena n-áirítear córais slándála, eagrú grianghraf, agus fíordheimhniú bithmhéadrach.
Tá méadú suntasach tagtha ar chruinneas na n-algartam aitheantais aghaidhe le blianta beaga anuas mar thoradh ar dhul chun cinn sa mheaisínfhoghlaim.
Leabharlanna Riachtanacha a Iompórtáil
Sula dtosaíonn tú ar rud ar bith, ní mór dúinn na leabharlanna a theastaíonn dár múnla a allmhairiú. Déantar tensorflow (tf) a allmhairiú agus a úsáid chun an tsamhail a chruthú agus a oiliúint. <(p>
Déanann “numpy” ríomhaireachtaí matamaitice agus próiseáil sonraí.
Allmhairítear “matplotlib.pyplot” mar plt agus úsáidtear é le haghaidh cairtiú sonraí agus léirshamhlú.
Mar fhocal scoir, allmhairítear “beir daoine lfw” ó sklearn. tacair sonraí agus a úsáidtear chun an tacar sonraí aitheantais aghaidhe a luchtú. Tá an fheidhm seo mar chuid den fhoireann uirlisí scikit-foghlaim. A bhuí leis an bhfeidhm seo níor ghá dúinn tacar sonraí eile a uaslódáil. Tá sé seo tógtha cheana féin i sckit-learn.
Agus, tugann sé rochtain duit ar raon leathan de tacair sonraí le haghaidh meaisínfhoghlama iarratais. Sa chás seo, úsáidimid an modh beir daoine lfw chun an tacar sonraí “Aghaidh Lipéadaithe san Fhiáin” (LFW) a aisghabháil. Cuimsíonn sé grianghraif d’aghaidheanna daoine chomh maith leis na lipéid a théann leo.
Tá na leabharlanna seo ríthábhachtach maidir le cur i bhfeidhm agus measúnú ár samhail aitheantais aghaidhe.
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt from sklearn.datasets
import fetch_lfw_people
An Tacar Sonraí Aitheanta Aghaidhe a Réamhphróiseáil agus a Luchtú
Sa chuid seo, bainimid úsáid as an bhfeidhm “fetch lfw people” chun na sonraí aitheantais aghaidhe a réamhphróiseáil. Ar dtús, bainimid úsáid as beir daoine lfw leis an rogha “min aghaidheanna an duine = 60”. Léiríonn sé seo nach dteastaíonn uainn ach daoine a bhfuil ar a laghad 60 grianghraf acu a áireamh sa tacar sonraí. Mar sin, cinnteoimid go bhfuil dóthain sonraí le foghlaim ag ár múnla. Chomh maith leis sin, íslíonn sé seo an baol rófheistithe.
Ansin baintear na sonraí agus na lipéid ón réad aghaidheanna agus sanntar iad do na hathróga X agus y. X holc.
Táimid réidh anois lenár múnla aitheantais aghaidhe a oiliúint ag baint úsáide as sonraí agus lipéid réamhphróiseáilte.
faces = fetch_lfw_people(min_faces_per_person=60)
X = faces.data
y = faces.target
target_names = faces.target_names
Scoilteadh Oiliúna agus Tacair Tástála
Sa chéim seo, roinneamar ár dtacar sonraí aitheantais aghaidhe ina dhá leath ag baint úsáide as an modh scoilte tástála traenach ó roghnú sklearn.model. Is é sprioc na scoilte seo ná measúnú a dhéanamh ar fheidhmíocht ár múnla tar éis oiliúna
Glacann an fheidhm scoilte tástála traenach mar shonraí ionchuir X agus lipéid y. Agus, roinneann sé iad i dtacair oiliúna agus tástála. Roghnaímid méid tástála = 0.2 sa sampla seo. Ciallaíonn sé seo go n-úsáidfear 20% de na sonraí mar thacar tástála agus 80% mar an tacar oiliúna. Ina theannta sin, úsáidimid staid randamach=42 chun a chinntiú go roinntear na sonraí go comhsheasmhach gach uair a dhéantar an cód.
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)
Ag Ullmhú na Sonraí
Is é an cuspóir atá le sonraí a réamhphróiseáil ná iad a ullmhú lena gcur isteach sa tsamhail. Déantar na sonraí a réamhphróiseáil sa chód seo trí gach pointe sonraí a roinnt ar 255.
Cad a spreag sinn chun é seo a bhaint amach? Is gnáthamh réamhphróiseála é normalú a úsáidtear i meaisínfhoghlama chun a chinntiú go bhfuil na gnéithe go léir ar an scála céanna. Sa chás seo, trí na sonraí a roinnt ar 255 scálaí go raon 0 go 1, ar gnáthchéim í seo chun sonraí pictiúir a normalú.
Cuireann sé seo dlús le cóineasú an mhúnla agus féadann sé a fheidhmíocht a mhéadú.
X_train = X_train / 255.0
X_test = X_test / 255.0
An Mód a Chruthú
Ba mhaith linn an duine a bhfuil a aghaidh le feiceáil i bpictiúr a aithint. Sa chás seo, úsáidfimid líonra lán-nasctha, ar a dtugtar líonra dlúth go minic. Is gréasán neural saorga é a úsáideadh chun an tsamhail a chruthú.
Déantar líonraí néaracha saorga a mhúnlú de réir mar a oibríonn agus a n-eagraítear inchinn an duine. Tá siad comhdhéanta de nóid próiseála faisnéise nó néaróin atá nasctha. Tá gach néaróin i sraith i líonra dlúth nasctha le gach néaróin sa chiseal os a chionn.
Tá ceithre shraith ag an tsamhail sa chód seo. Chun iad a thabhairt isteach sa chéad chiseal eile, déantar na sonraí ionchuir a leathadh sa chéad chiseal in eagar aontoiseach. Tá na néaróin 128 agus 64 sa dá shraith seo a leanas, dá réir sin, nasctha go hiomlán.
Is feidhm gníomhachtaithe uathúil í feidhm gníomhachtaithe ReLU a úsáideann na sraitheanna seo. Leis sin, is féidir linn an tsamhail a fháil chun comhghaolta neamhlíneacha a fhoghlaim idir na hionchuir agus na haschuir. Úsáideann an ciseal deireanach feidhm gníomhachtaithe softmax chun tuar a dhéanamh. Agus, is ciseal lán-nasctha é lena oiread néaróin agus atá aicmí féideartha.
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')
])
Tiomsú na Múnla
Déantar an tsamhail a thiomsú ag baint úsáide as an bhfeidhm “a thiomsú”. Ní mór dúinn an múnla a ullmhú le haghaidh oiliúna. Mar sin, saineoimid an optimizer, an fheidhm chaillteanais, agus an mhéadracht a úsáidfear chun an tsamhail a mheasúnú.
Le linn na hoiliúna, tá an optimizer i gceannas ar pharaiméadair an mhúnla a athrú. Teicníc barrfheabhsaithe domhainfhoghlama a bhfuil an-tóir uirthi is ea an optimizer “adam”.
Bainimid úsáid as an bhfeidhm chaillteanais chun measúnú a dhéanamh ar fheidhmíocht an mhúnla ar na sonraí oiliúna. Toisc gur slánuimhreacha iad na sprioclipéid a léiríonn aicme na híomhá seachas veicteoirí ionchódaithe aon-te, tá feidhm an chaillteanais “thraseantrópachta catagóiriúil gann” fabhrach.
Ar deireadh, sainímid na méadrachtaí chun an tsamhail a mheas, sa chás seo, “cruinneas”.
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
Oiliúint Múnla
Úsáidfimid an fheidhm “oiriúnach” chun an tsamhail a oiliúint.
Cuirfimid na sonraí oiliúna (traein X) agus na lipéid ghaolmhara (y train) ar fáil, chomh maith le líon na dtréimhsí (athrá) a bheidh le rith mar 10 a shocrú. Athraíonn an nós imeachta oiliúna meáchain na samhla chun caillteanas a laghdú (an difríocht idir lipéid tuartha agus fíor) agus feabhas a chur ar chruinneas na sonraí oiliúna.
model.fit(X_train, y_train, epochs=10)
Meastóireacht Mhúnla
Anois, ní mór dúinn measúnú a dhéanamh ar an tsamhail oilte ar na sonraí tástála. Bainimid úsáid as an gcaillteanas tástála agus úsáidtear cruinneas tástála chun feidhmíocht an mhúnla a mheas. Ar an tástáil sonraí tástála X agus na lipéid tástála y test, ní mór dúinn "an fheidhm model.valuate" a ghlaoch.
Aschuir an fheidhm cruinneas tástála agus caillteanas tástála. Cuimsíonn na hathróga caillteanais tástála agus cruinneas tástála, faoi seach, na luachanna seo. Ar deireadh, úsáidimid an fheidhm “priontáil” chun cruinneas na tástála a aschur.
test_loss, test_accuracy = model.evaluate(X_test, y_test)
print("Test accuracy:", test_accuracy)
Ranganna a Thuar agus na Ranganna Tuartha a Fháil
Ag baint úsáide as an tsamhail oiliúna agus na sonraí tástála, déanann an algartam tuar. Nuair a chuirtear na sonraí tástála ar aghaidh chuig an modh “model.predict”, aschuireann sé raon réamh-mheastacháin do gach pictiúr sa tacar tástála.
Aisghabhtar ansin ainm an sprioc-aicme do gach pictiúr ón liosta “spriocainmneacha” ag baint úsáide as an bhfeidhm “np.argmax” chun an t-innéacs leis an dóchúlacht is mó a thuar a aithint. Úsáidtear an t-innéacs seo ansin chun an rang tuartha do gach íomhá a chinneadh.
Trí úsáid a bhaint as liostathuiscint, cuirtear na réamh-mheastacháin go léir san eagar “tuar” faoi réir an mhodha seo, rud a fhágann go bhfuil an liosta “aicmí tuartha”.
predictions = model.predict(X_test)
predicted_classes = [target_names[np.argmax(prediction)] for prediction in predictions]
Amharc ar na Tuartha
Is féidir linn a fheiceáil anois conas a bhreathnaíonn ár múnla.
Chun a mheas cé chomh maith agus atá ag éirí leis an tsamhail, taispeánfar na chéad 10 ngrianghraf agus a dtuar. Déanfaidh sé na grianghraif a bhreacadh i liathscála agus taispeánfaidh sé aicme iarbhír na híomhá agus an rang atá tuartha ag an tsamhail ag baint úsáide as an modúl matplotlib.pyplot.
Úsáideann an for loop an fheidhm “imshow” chun gach ceann de na 10 ngrianghraf tacair tástála a bhreacadh. Úsáidtear spriocainmneacha[y triail[i]] agus aicmí tuartha[i] chun aicme iarbhír agus aicme tuartha na híomhá a chinneadh, faoi seach. Cuirtear teidil gach ceapa in iúl ansin leis na haicmithe seo.
Ar deireadh, taispeántar an plota ag baint úsáide as an modh 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()
Clóscríobh
Tairgeann TensorFlow timpeallacht iomlán agus solúbtha chun samhlacha meaisínfhoghlama a chruthú.
Trí mhionchoigeartú a dhéanamh ar an tsamhail chun freastal ar riachtanais áirithe nó trí fhorbairtí nua ar mheaisín-fhoghlaim a chur leis, féadfar cruinneas an mhúnla a mhéadú tuilleadh.
Is dócha go n-úsáidfear tensorFlow agus aitheantas aghaidhe i dtionscail cosúil le córais slándála, fíordheimhniú bithmhéadrach, agus cúram sláinte amach anseo. Beidh nuálaíochtaí suimiúla le feiceáil againn go luath.
Leave a Reply