TensorFlow bụ ngwa ọrụ dị iche iche iji mepụta ụdị mmụta igwe.
Na post a, anyị ga-eleba anya ka esi emepụta sistemu njirimara ihu na TensorFlow, usoro mmụta igwe mepere emepe. Anyị ga-agafe usoro dị mkpa n'ịmepụta usoro njirimara ihu na-aga nke ọma, site na ịchịkọta na ịkwadebe data iji zụọ na ịtụle ihe nlereanya.
Ị ga-enweta ahụmịhe nke mbụ na TensorFlow iji mepụta ihu ihu site na enyemaka nke snippets koodu na ihe atụ ụwa n'ezie. Obi dị gị ụtọ iso ka anyị na-aga n'ihu.
Okwu Mmalite nke TensorFlow
TensorFlow bụ ọbá akwụkwọ mepere emepe na nke mepere emepe. Ọ bụ igbe mgbakọ na mwepụ ihe atụ nke na-eji dataflow na mmemme dị iche iche. Ị nwere ike iji ya rụọ ọtụtụ ọrụ, gụnyere nke miri emi neural network ọzụzụ.
TensorFlow dị ike yana mgbanwe. N'otu aka ahụ, ọ bụ nnukwu ngwá ọrụ maka ịmepụta na na-ebugharị ụdị mmụta igwe. Ị nwere ike wuo ụdị mgbagwoju anya nwere ọtụtụ ọkwa na arụmọrụ tensor. Ọzọkwa, ụdị ndị e wuburu n'ọbá akwụkwọ ahụ nwere ike idozi nke ọma maka mkpa ụfọdụ.
Ọzọkwa, TensorFlow nwere nnukwu obodo ndị ọrụ na-agbasawanye. Yabụ, enwere ọtụtụ ozi na enyemaka maka ndị mmadụ bụ ndị ọhụrụ na ikpo okwu.
TensorFlow bụ ewu ewu maka ngwa igwe n'otu akụkụ n'ihi na ọ na-enye usoro ọrụ njedebe na njedebe. Yabụ, ị nwere ike wuo, zụọ ma tinye ụdịdị. Ọ na-enye ngwá ọrụ na atụmatụ maka imeziwanye na ịcha ụdị ka ọ dabara ihe ndị a chọrọ. Ọ dị iche site na nhazi data ruo na ntinye ụdị.
Kedu ihe bụ njirimara ihu?
Nchọpụta ihu bụ a ọhụụ kọmputa ọrụ nke na-achọpụta njirimara mmadụ dabere na ihu ha. Usoro a na-amata àgwà ihu, dị ka ọdịdị na ọdịdị nke anya, imi, na ọnụ.
Na, ọ na-atụnyere ha na nchekwa data nke ihu ama ama iji chọpụta otu egwuregwu. Nchọpụta ihu nwere ọtụtụ ojiji, gụnyere sistemu nchekwa, nhazi foto na nyocha biometric.
Izi ezi njirimara ihu algọridim abawanyela nke ukwuu n'afọ ndị na-adịbeghị anya n'ihi ọganiihu na mmụta igwe.
Na-ebubata ọba akwụkwọ dị mkpa
Tupu ịmalite ihe ọ bụla, anyị kwesịrị ibubata ụlọ akwụkwọ ndị achọrọ maka ihe nlereanya anyị. A na-ebubata Tensorflow (tf) ma jiri ya mepụta ma zụọ ihe nlereanya. <(p>
"numpy" na-arụ mgbakọ mgbakọ na mwepụ na nhazi data.
A na-ebubata "matplotlib.pyplot" dị ka plt ma jiri ya mee ihe nhazi data na visualizations.
N'ikpeazụ, "kpọtara lfw ndị mmadụ" si sklearn na-ebubata. datasets na-eji na-ebunye data njirimara ihu. Ọrụ a bụ akụkụ nke scikit-learn Toolkit. N'ihi ọrụ a, anyị enweghị ibugo ihe ndekọ data ọzọ. Ewuolarị nke a na skit-Learn.
Na, ọ na-enye gị ohere ị nweta a dịgasị iche iche nke datasets maka igwe mmụta ngwa. N'ọnọdụ a, anyị na-eji usoro ndị mmadụ nweta lfw iji weghachite dataset " ihu akpọrọ n'ime ọhịa " (LFW). Ọ nwere foto ihu ndị mmadụ yana akara ndị ha na ha na-aga.
Ọbá akwụkwọ ndị a dị oke mkpa na mmejuputa na nleba anya nke ụdị njirimara ihu anyị.
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt from sklearn.datasets
import fetch_lfw_people
Na-ebu ụzọ nhazi na na-ebunye ihe ndekọ data njirimara ihu
N'akụkụ a, anyị na-eji ọrụ "kpọpụta lfw ndị mmadụ" iji hazie data njirimara ihu. Nke mbụ, anyị na-eji kpọpụta ndị lfw nwere nhọrọ "min faces per person=60". Nke a na-egosi na naanị anyị chọrọ ịgụnye ndị nwere opekata mpe foto 60 na dataset. N'ihi ya, anyị na-ahụ na ihe nlereanya anyị nwere data zuru oke iji mụta. Ọzọkwa, nke a na-ebelata ihe ize ndụ dị n'imebiga ihe ókè.
A na-ewepụta data na akara ndị sitere na ihe ihu wee kenye ya na mgbanwe X na y. X hol.
Anyị adịla njikere ugbu a ịzụ ụdị njirimara ihu anyị site na iji data na akara ahaziri ahazi.
faces = fetch_lfw_people(min_faces_per_person=60)
X = faces.data
y = faces.target
target_names = faces.target_names
Ọzụzụ nkewa na nhazi ule
N'ime usoro a, anyị na-ekewa dataset njirimara ihu anyị ụzọ abụọ site na iji usoro nkewa ule ụgbọ oloko sitere na nhọrọ sklearn.model. Ebumnuche nke nkewa a bụ ịtụle arụmọrụ ihe nlereanya anyị ka ọzụzụ gasịrị
Ọrụ nkewa ule ụgbọ oloko na-anabata dị ka data ntinye X na akara y. Na, ọ na-ekewa ha n'ime ọzụzụ na nhazi ule. Anyị na-ahọrọ nha ule=0.2 n'ihe atụ a. Nke a na-egosi na a ga-eji 20% nke data ahụ dị ka ihe nlele ule yana 80% dịka nhazi ọzụzụ. Ọzọkwa, anyị na-eji random state=42 iji hụ na a na-ekewa data ahụ mgbe niile oge ọ bụla emere koodu.
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)
Na-akwado Data
Ebumnuche nke nhazi data bụ ịkwadebe ya maka ịbanye n'ime ihe nlereanya ahụ. Emebere data a na koodu a site n'ikewa ebe data ọ bụla site na 255.
Gịnị kpaliri anyị ime nke a? Nkịtị bụ usoro nhazi ụzọ eji na mmụta igwe na-ekwe nkwa na njirimara niile dị n'otu nha. N'ọnọdụ a, nkerisi site na 255 na-atụba data ahụ na nso nke 0 ruo 1, nke bụ usoro nhazi data foto a na-emekarị.
Nke a na-eme ka njikọ nke ihe nlereanya ahụ dịkwuo elu ma nwee ike ịbawanye arụmọrụ ya.
X_train = X_train / 255.0
X_test = X_test / 255.0
Ịmepụta ọnọdụ
Anyị chọrọ ịmata onye ihu ya pụtara na foto a. N'okwu a, anyị ga-eji netwọk ejikọrọ zuru oke, nke a na-akpọkarị netwọk dị oke. Ọ bụ netwọk akwara arụ ọrụ nke ejiri mepụta ihe nlereanya.
A na-eme ka netwọk akwara arụrụ arụ ọrụ ka ụbụrụ mmadụ si arụ ọrụ na ịhazi ya. Ihe mejupụtara ha bụ ọnụ na-ahazi ozi ma ọ bụ neuron jikọtara ya. Neuron ọ bụla n'ime oyi akwa na netwọk dị oke na-ejikọta na neuron ọ bụla dị na oyi akwa dị n'elu ya.
Ihe nlereanya ahụ nwere ọkwa anọ na koodu a. Iji nye nri n'ime oyi akwa na-esote, a na-agbaji data ntinye na oyi akwa nke mbụ n'ime otu akụkụ. Neuron 128 na 64 dị n'ígwé abụọ na-esote, ya mere, jikọtara kpamkpam.
Ọrụ ịgbalite ReLU bụ ọrụ nkwalite pụrụ iche nke ọkwa ndị a na-eji. Site na nke ahụ, anyị nwere ike nweta ihe nlereanya iji mụta mmekọrịta na-abụghị nke linear n'etiti ntinye na ntinye. Ngwunye ikpeazụ na-eji ọrụ ịgbalite softmax mee amụma. Na, ọ bụ oyi akwa ejikọtara nke ọma nwere ọtụtụ neurons dịka enwere ike klaasị.
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')
])
Ịchịkọta Model
A na-ejikọta ihe nlereanya ahụ site na iji ọrụ "ịchịkọta". Anyị kwesịrị ịkwadebe ihe nlereanya maka ọzụzụ. Yabụ, anyị ga-akọwapụta njikarịcha, ọrụ mfu, na metrik nke a ga-eji nyochaa ihe nlereanya.
N'oge ọzụzụ, njikarịcha na-ahụ maka ịgbanwe paramita ihe nlereanya ahụ. Ihe kacha mma “adam” bụ usoro njikarịcha mmụta miri emi ama ama.
Anyị na-eji ọrụ mfu iji nyochaa arụmọrụ ihe nlereanya na data ọzụzụ. N'ihi na akara ndị e lekwasịrị anya bụ integers na-egosipụta klaasị onyonyo a karịa otu vector agbakwunyere na-ekpo ọkụ, ọrụ mfu “sparse categorical crossentropy” dị mma.
N'ikpeazụ, anyị na-akọwapụta metrics iji nyochaa ihe nlereanya, na nke a, "ezigbo".
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
Ọzụzụ Nlereanya
Anyị ga-eji ọrụ "dabara" ịzụ ihe nlereanya.
Anyị ga-enye data ọzụzụ (ụgbọ okporo ígwè X) na akara ndị metụtara ya (y ụgbọ oloko), yana ịtọlite ọnụ ọgụgụ nke oge (iterations) iji na-agba ọsọ dị ka 10. Usoro ọzụzụ na-emezi ihe atụ nke ihe nlereanya iji belata ọnwụ (iche dị n'etiti). buru amụma na ezigbo aha) ma melite izi ezi nke data ọzụzụ.
model.fit(X_train, y_train, epochs=10)
Nlele Nlereanya
Ugbu a, anyị kwesịrị ịtụle ihe nlereanya a zụrụ azụ na data ule. Anyị na-eji mfu ule na nnwale ziri ezi na-eji iji nyochaa arụmọrụ ihe nlereanya ahụ. Na nyocha data X na akara ule y ule, anyị kwesịrị ịkpọ "ọrụ nlereanya. nyochaa ọrụ"
Ọrụ ahụ na-arụpụta izi ezi nke ule na ọnwụ ule. Mgbanwe ndị ahụ na-anwale mfu na nwalee izi ezi, n'otu n'otu, nwere ụkpụrụ ndị a. N'ikpeazụ, anyị na-eji ọrụ "bipụta" iji wepụta izi ezi ule.
test_loss, test_accuracy = model.evaluate(X_test, y_test)
print("Test accuracy:", test_accuracy)
Klas ịkọ amụma na inweta klaasị ndị amụma
N'iji ụdị ọzụzụ na data nyocha, algọridim na-eme amụma. Mgbe data ule gafere na usoro "model.predict", ọ na-ewepụta ọtụtụ amụma maka foto ọ bụla n'ime ule nyocha.
A na-eweghachite aha klaasị lekwasịrị anya maka foto ọ bụla na listi “aha ebumnuche” site na iji ọrụ “np.argmax” iji chọpụta ndeksi nwere ike buru amụma. A na-eji ndepụta ndeksi a chọpụta klaasị amụma maka onyonyo ọ bụla.
N'iji nghota ndepụta, amụma niile dị n'usoro "amụma" na-edobere usoro a, na-ebute ndepụta "klaasị amụma".
predictions = model.predict(X_test)
predicted_classes = [target_names[np.argmax(prediction)] for prediction in predictions]
Ilele amụma ndị ahụ anya
Anyị nwere ike ịhụ ugbu a ka ihe nlereanya anyị si dị.
Iji nyochaa otú ihe nlereanya ahụ si eme nke ọma, a ga-egosipụta foto mbụ 10 na amụma ha. Ọ ga-akpa nkata foto na grayscale na-egosipụta ma n'ezie klas nke oyiyi na klas buru amụma site nlereanya iji matplotlib.pyplot modul.
A na-eji ọrụ "imshow" maka loop mee atụmatụ nke ọ bụla n'ime foto setịpụrụ 10 mbụ. A na-eji aha ebumnuche[y test[i]] na klaasị amụma[i] iji chọpụta klaasị n'ezie na klaasị amụma, n'otu n'otu. A na-egosipụtakwa aha nke nkata ọ bụla site na nhazi ọkwa ndị a.
N'ikpeazụ, a na-egosipụta atụmatụ ahụ site na iji usoro 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()
Kechie
TensorFlow na-enye gburugburu zuru oke na mgbanwe maka ịmepụta ụdị mmụta igwe.
Site n'imezigharị ihe nlereanya ahụ iji mezuo ihe ụfọdụ a chọrọ ma ọ bụ site n'ịgbakwunye mmepe ọhụrụ na mmụta igwe, izi ezi nke ihe nlereanya ahụ nwere ike ịba ụba karịa.
O yikarịrị ka a ga-eji TensorFlow na njirimara ihu na-abawanye na ụlọ ọrụ dị ka sistemụ nchekwa, nyocha biometric, na ahụike n'ọdịnihu. Anyị ga-ahụ ihe ọhụrụ na-adọrọ mmasị n'oge na-adịghị anya.
Nkume a-aza