TensorFlow waa qalab kala duwan oo lagu abuuro moodooyinka-barashada mashiinka.
Maqaalkan, waxaan ku eegi doonaa sida loo abuuro nidaamka aqoonsiga wejiga TensorFlow, qaab-dhismeedka barashada mashiinka il furan. Waxaan ka gudbi doonaa hababka lagama maarmaanka u ah abuurista nidaam aqoonsi waji guul leh, laga bilaabo ururinta iyo diyaarinta xogta ilaa tababarida iyo qiimaynta qaabka.
Waxaad ka heli doontaa waayo-aragnimada gacanta koowaad ee TensorFlow si aad u abuurto aqoonsiga wejiga iyadoo la kaashanayo qaybo kood ah iyo tusaalayaal adduunka dhabta ah. Waa lagugu soo dhawaynayaa inaad raacdo inta aanu sii wadno.
Hordhaca TensorFlow
TensorFlow waa maktabad il furan oo bilaash ah. Waa sanduuq xisaabeed calaamad ah oo adeegsada qulqulka xogta iyo barnaamijyada la kala saari karo. Waxaad ku qabsan kartaa hawlo kala duwan, oo ay ku jiraan kuwa qoto dheer shabakada neuralada tababarka.
TensorFlow waa mid xoog badan oo la qabsan karo. Sidoo kale, waa qalab weyn oo loogu talagalay horumarinta iyo dejinta moodooyinka barashada mashiinka. Waxaad ku dhisi kartaa moodooyin adag oo leh dhowr lakab iyo hawlgallada tensor. Sidoo kale, moodooyinka horay loo dhisay ee maktabadda ayaa si fiican loogu hagaajin karaa baahiyo gaar ah.
Intaa waxaa dheer, TensorFlow waxay leedahay bulsho adeegsade weyn oo sii fidaysa. Markaa, waxa jira xog iyo caawimo badan oo loogu talogalay shakhsiyaadka ku cusub goobta.
TensorFlow ayaa caan ku ah barashada mashiinka qayb ahaan sababtoo ah waxay bixisaa socodka shaqada dhamaadka-ilaa-dhamaadka. Markaa, si fudud ayaad u dhisi kartaa, tababari kartaa una diri kartaa moodooyinka. Waxay bixisaa qalab iyo xeelado lagu wanaajiyo laguna cabbiro moodooyinka si ay ugu habboonaato baahiyo gaar ah. Way ku kala duwan tahay xogta diyaarinta ka hor ilaa qaabaynta qaabaynta.
Waa maxay aqoonsiga waji?
Aqoonsiga wajigu waa a aragtida kombiyuutarka hawl tilmaamaysa aqoonsiga qofka ee ku salaysan wejigiisa. Farsamadan waxay aqoonsanaysaa astaamaha wejiga, sida qaabka iyo qaabka indhaha, sanka, iyo afka.
Waxayna, waxay la barbar dhigaysaa kaydka xogta wejiyada la yaqaan si loo aqoonsado tartammada. Aqoonsiga wejigu waxa uu leeyahay adeegsiyaal badan, oo ay ku jiraan nidaamyada amniga, abaabulka sawirka, iyo xaqiijinta biometric.
Saxnaanta algoorithms-yada waji ayaa si aad ah u kordhay sannadihii u dambeeyay taas oo ay ugu wacan tahay horumarrada laga gaaray barashada mashiinka.
Soo dejinta Maktabadaha lagama maarmaanka ah
Kahor intaanan wax bilaabin, waxaan u baahanahay inaan soo dejino maktabadaha loo baahan yahay moodelkeena. Tensorflow (tf) waa la soo dejiyaa waxaana loo isticmaalaa in lagu abuuro oo lagu tababaro moodeelka. <( p>
"numpy" waxay qabataa xisaabinta xisaabta iyo habaynta xogta.
"matplotlib.pyplot" waxaa loo soo dhoofiyaa sida plt oo loo isticmaalo shaxda xogta iyo muuqaalaynta.
Ugu dambeyntii, "Keeno lfw dadka" waxaa laga keenaa sklearn. Datasets oo loo isticmaalo in lagu shubo xogta aqoonsiga wajiga. Shaqadani waa qayb ka mid ah xirmada-barashada scikit. Waad ku mahadsan tahay shaqadan ma aanan u baahnayn in aan soo galno xogta kale. Tani waxay horeba ugu dhisnayd skit-Learn.
Oo, waxay ku siinaysaa fursad aad ku hesho tiro balaadhan oo ah xog-ururinta mashiinka barashada codsiyada. Xaaladdan, waxaan isticmaalnaa habka loo keeno lfw dadka si aan u soo saarno xogta "Wajiyada La calaamadeeyay ee Duurjoogta" (LFW). Waxay ka kooban tahay sawirrada wejiyada dadka iyo sidoo kale calaamadaha la socda.
Maktabadahani waxay muhiim u yihiin hirgelinta iyo qiimaynta qaabka aqoonsiga wejigeena.
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt from sklearn.datasets
import fetch_lfw_people
Diyaarinta iyo Soo dejinta Xogta Aqoonsiga Wajiga
Qaybtan, waxaanu ka faa'iidaysanaynaa hawsha "kaxaynta lfw dadka" si aan u sii diyaarsano xogta aqoonsiga wajiga. Marka hore, waxaan isticmaalnaa dad lfw ah oo leh ikhtiyaarka "min faces per person=60". Tani waxay tusinaysaa in aan rabno oo kaliya in aan ku darno xogta xogta ee leh ugu yaraan 60 sawir. Sidaa awgeed, waxaanu hubinaynaa in moodelkeenu leeyahay xog ku filan oo la barto. Sidoo kale, tani waxay hoos u dhigeysaa khatarta ah in la isku xiro.
Xogta iyo sumadaha shayga wejiyada ayaa markaa la soosaaraa waxaana lagu meeleeyaa doorsoomayaasha X iyo y. X hol.
Waxaan hadda diyaar u nahay inaan tababarno qaabka aqoonsiga wejiga annaga oo adeegsanayna xogta iyo sumadaha horay loo sii diyaariyay.
faces = fetch_lfw_people(min_faces_per_person=60)
X = faces.data
y = faces.target
target_names = faces.target_names
Qaybinta Tababarka iyo Hababka Imtixaanka
Tallaabadan, waxaanu u kala qaybinay xogta aqoonsiga wejiga laba qaybood anagoo adeegsanayna habka kala qaybinta tijaabada tareenka ee xulashada sklearn.model. Hadafka kala qaybsanaantu waa in la qiimeeyo waxqabadka moodeelkeena tababarka ka dib
Shaqada kala qaybsanaanta tijaabada tareenku waxay aqbashaa xogta wax gelinta ee X iyo summadaynta y. Oo, waxay u kala qaybisaa tababar iyo tijaabo. Waxaan ku dooranaynaa cabbirka tijaabada=0.2 tusaalahan. Tani waxay tusinaysaa in 20% xogta loo isticmaali doono hab-tijaabada iyo 80% oo ah habka tababarka. Intaa waxaa dheer, waxaan isticmaalnaa random state=42 si aan u hubinno in xogta si joogta ah loo qaybsado mar kasta oo koodka la sameeyo.
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)
Diyaarinta Xogta
Ujeedada xogta hore loo sii diyaariyay waa in loo diyaariyo gelitaanka qaabka. Xogta waxaa lagu sii diyaariyay koodkan iyadoo loo qaybinayo dhibco kasta 255.
Maxaa nagu kallifay inaan tan gaarno? Caadiyan waa habsocod horudhac ah oo loo isticmaalo barashada mashiinka si loo dammaanad qaado in dhammaan sifooyinka ay isku miisaan yihiin. Xaaladdan, qaybinta 255 waxay xogta ku miisaamaysaa inta u dhaxaysa 0 ilaa 1, taas oo ah tallaabada caadiga ah ee xogta sawirka.
Tani waxay dedejinaysaa isku dhafka moodeelka waxayna kordhin kartaa waxqabadkiisa.
X_train = X_train / 255.0
X_test = X_test / 255.0
Abuuritaanka Habka
Waxaan rabnaa inaan aqoonsanno shaqsiga wajigiisu ka muuqdo sawirka. Xaaladdan oo kale, waxaan isticmaali doonaa shabakad si buuxda u xiran, oo inta badan loo yaqaan shabakad cufan. Waa shabakad neural ah oo macmal ah oo loo isticmaalay in lagu abuuro qaabka.
Shabakadaha neerfaha ee macmalka ah waxaa loo qaabeeyey sida ay maskaxda bini'aadamku u shaqeyso una habaysan tahay. Waxay ka kooban yihiin qanjidhada habaynta macluumaadka ama neurons kuwaas oo isku xidhan. Neuron kasta oo ku jira lakabka shabakad cufan ayaa ku xidhan neuron kasta oo ku jira lakabka ka sarreeya.
Qaabku wuxuu leeyahay afar lakab oo koodkan ah. Si loo quudiyo lakabka xiga, xogta galinta waxa lagu simman yahay lakabka kowaad oo loo galiyay qaab hal-cabbir ah. 128 iyo 64 neurons ee labada lakab ee soo socda, sidaas awgeed, si buuxda ayay isugu xidhan yihiin.
Shaqada firfircoonida ReLU waa hawl firfircooni gaar ah oo ay isticmaalaan lakabyadan. Taas, waxaan ku heli karnaa qaabka si aan u baranno isku xirnaanta aan toos ahayn ee u dhexeeya wax-soo-saarka iyo soo-saarka. Lakabka ugu dambeeya wuxuu shaqeeyaa shaqada firfircoonida softmax si uu saadaaliyo. Iyo, waa lakab si buuxda ugu xiran oo leh inta badan neurons maadaama ay jiraan fasallo suurtagal ah.
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')
])
Ururinta Qaabka
Qaabka waxaa lagu soo ururiyay iyadoo la adeegsanayo shaqada "isku-dar". Waxaan u baahanahay inaan diyaarino qaabka tababarka. Markaa, waxaanu qeexi doonaa hagaajinta, shaqada lumin, iyo cabbirada loo isticmaali doono si loo qiimeeyo qaabka.
Inta lagu jiro tabobarka, wanaajiyaha ayaa mas'uul ka ah beddelka cabbirka moodeelka. Hagaajinta "adam" waa farsamada kobcinta qoto dheer ee caanka ah.
Waxaan u isticmaalnaa shaqada luminta si aan u qiimeyno waxqabadka tusaalaha ee xogta tababarka. Sababtoo ah sumadaha bartilmaameedku waa tirooyin ka tarjumaya fasalka sawirka halkii ay ka ahaan lahaayeen hal-kulul oo ku lifaaqan vectors, "shaqo yar oo iskutallaabta ah" waa mid wanaagsan.
Ugu dambeyntii, waxaanu qeexaynaa cabbirada si loo qiimeeyo qaabka, kiiskan, "saxnimada".
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
Tababarka Model
Waxaan u isticmaali doonaa shaqada "ku haboon" si aan u tababarno qaabka.
Waxaan bixin doonaa xogta tababarka (tareenka X) iyo calaamadaha la xiriira (y tareenka), sidoo kale waxaan dejin doonaa tirada xilliyada (xilliyada) si ay u socdaan 10. Habka tababarku wuxuu wax ka beddelaa miisaanka moodeelka si loo yareeyo khasaaraha (farqiga u dhexeeya sumadaha la saadaaliyay iyo kuwa dhabta ah) iyo hagaajinta saxnaanta xogta tababarka.
model.fit(X_train, y_train, epochs=10)
Qiimaynta Model
Hadda, waxaan u baahanahay inaan qiimeyno qaabka la tababaray ee xogta imtixaanka. Waxaan isticmaalnaa khasaaraha imtixaanka iyo saxnaanta tijaabada ayaa loo isticmaalaa si loo qiimeeyo waxqabadka moodeelka. Imtixaanka xogta X iyo sumadaha tijaabada y, waxaan u baahanahay inaan wacno "model.valuate function"
Shaqadu waxay soo saartaa saxnaanta imtixaanka iyo luminta tijaabada. Doorsoomayaashu waxay tijaabiyaan luminta iyo tijaabinta saxnaanta, siday u kala horreeyaan, waxay ka kooban yihiin qiimayaashan. Ugu dambeyntii, waxaan isticmaalnaa shaqada "daabacaadda" si aan u soo saarno saxnaanta imtixaanka.
test_loss, test_accuracy = model.evaluate(X_test, y_test)
print("Test accuracy:", test_accuracy)
Fasallada Saadaalinta iyo Helitaanka Fasallada la Saadaaliyay
Isticmaalka qaabka tababarka iyo xogta imtixaanka, algorithm wuxuu sameeyaa saadaalin. Marka xogta tijaabada loo gudbiyo habka "model.predict", waxay soo saartaa saadaasha kala duwan ee sawir kasta oo ku jira tijaabada tijaabada.
Magaca fasalka bartilmaameedka ee sawir kasta ayaa markaa laga soo saaray liiska "magacyada bartilmaameedka" iyadoo la adeegsanayo "np.argmax" si loo aqoonsado tusaha leh suurtogalnimada ugu weyn ee la saadaaliyay. Tusmadan ayaa markaa loo isticmaalaa si loo go'aamiyo fasalka la saadaaliyay ee sawir kasta.
Isticmaalka fahamka liistada, dhammaan saadaasha ku jirta shaxda "saadaasha" ayaa lagu dabaqay habkan, taasoo keentay liiska "fasalada la saadaaliyay".
predictions = model.predict(X_test)
predicted_classes = [target_names[np.argmax(prediction)] for prediction in predictions]
Sawirka Saadaasha
Waxaan hadda arki karnaa sida moodelkeenu u eg yahay.
Si loo qiimeeyo sida wanaagsan ee moodelku u shaqeeyo, 10ka sawir ee ugu horreeya iyo saadaashooda ayaa la tusi doonaa. Waxay sawiri doontaa sawirada qaab cawlan waxayna soo bandhigi doontaa labadaba fasalka dhabta ah ee sawirka iyo fasalka uu saadaaliyay moodeelka iyadoo la adeegsanayo moduleka matplotlib.pyplot.
Shaqada "imshow" waxa isticmaala loop si uu u sawiro mid kasta oo ka mid ah 10ka sawir ee ugu horeeya. Magacyada bartilmaameedka[y imtixaan[i]] iyo fasallada la saadaaliyay[i] ayaa loo isticmaalaa si loo go'aamiyo sawirka dhabta ah ee fasalka iyo fasalka la saadaaliyay, siday u kala horreeyaan. Magacyada goob kasta ayaa markaa lagu tilmaamayaa kala soocidaan.
Ugu dambeyntii, qisada waxaa lagu soo bandhigay iyadoo la isticmaalayo habka 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()
Duub
TensorFlow waxay bixisaa jawi dhamaystiran oo dabacsan si loo abuuro moodooyinka barashada mashiinka.
Marka la hagaajiyo qaabka si loo buuxiyo shuruudo gaar ah ama lagu daro horumarin cusub oo ku saabsan barashada mashiinka, saxnaanta moodeelka ayaa laga yaabaa in la kordhiyo xitaa intaa ka sii badan.
TensorFlow iyo aqoonsiga wejiga waxay u badan tahay in si sii kordheysa loogu isticmaali doono warshadaha sida nidaamyada amniga, xaqiijinta biometric, iyo daryeelka caafimaadka mustaqbalka. Waxaan arki doonaa hal-abuuro soo jiidasho leh waqti dhow.
Leave a Reply