TensorFlow mangrupikeun alat anu serbaguna pikeun nyiptakeun modél pembelajaran mesin.
Dina postingan ieu, urang bakal ningali kumaha cara ngadamel sistem pangenal wajah sareng TensorFlow, kerangka pembelajaran mesin open-source. Urang bakal ngalangkungan prosés penting dina nyiptakeun sistem pangenal wajah anu suksés, tina ngumpulkeun sareng nyiapkeun data pikeun ngalatih sareng meunteun modél.
Anjeun bakal nampi pangalaman panangan sareng TensorFlow pikeun nyiptakeun pangenal raray kalayan bantosan potongan kode sareng conto dunya nyata. Anjeun wilujeng sumping pikeun nuturkeun sapanjang urang neruskeun.
Pengantar TensorFlow
TensorFlow mangrupikeun perpustakaan sumber terbuka sareng gratis. Éta mangrupikeun kotak alat matematika simbolis anu ngagunakeun aliran data sareng pemrograman anu tiasa dibédakeun. Anjeun tiasa ngadamel sauntuyan tugas kalawan eta, kaasup jero jaringan neural latihan.
TensorFlow kuat sareng adaptasi. Kitu ogé, éta mangrupikeun alat anu saé pikeun ngembangkeun sareng nyebarkeun modél pembelajaran mesin. Anjeun tiasa ngawangun modél rumit kalayan sababaraha lapisan sareng operasi tensor. Ogé, modél anu tos diwangun dina perpustakaan tiasa disaluyukeun pikeun kabutuhan khusus.
Saterusna, TensorFlow boga komunitas pamaké badag sarta ngembangna. Janten, aya seueur inpormasi sareng bantosan pikeun jalma anu anyar dina platform éta.
TensorFlow populér pikeun learning mesin sabagian sabab nyadiakeun workflow tungtung-to-tungtung. Janten, anjeun tiasa gampang ngawangun, ngalatih sareng nyebarkeun modél. Éta nyayogikeun alat sareng strategi pikeun ningkatkeun sareng skala modél pikeun nyocogkeun kana tungtutan khusus. Ieu beda-beda ti pre-processing data pikeun deployment model.
Naon Pangenal Wajah?
Pangenal raray nyaeta a visi komputer tugas anu nangtukeun idéntifikasi hiji jalma dumasar kana beungeut maranéhanana. Téhnik ieu ngakuan sipat raray, sapertos bentuk sareng tékstur panon, irung, sareng sungut.
Na, eta compares aranjeunna ka database tina rupa dipikawanoh pikeun ngaidentipikasi cocok a. Pangenalan raray ngagaduhan sababaraha kagunaan, kalebet sistem kaamanan, organisasi poto, sareng auténtikasi biometrik.
Akurasi algoritma pangenal raray parantos ningkat sacara signifikan dina taun-taun ayeuna salaku hasil tina terobosan dina pembelajaran mesin.
Ngimpor Perpustakaan Diperlukeun
Sateuacan ngamimitian nanaon, urang kedah ngimpor perpustakaan anu diperyogikeun pikeun modél urang. Tensorflow (tf) diimpor sareng dianggo pikeun nyiptakeun sareng ngalatih modél. <(p>
"numpy" ngalakukeun itungan matematik jeung ngolah data.
"matplotlib.pyplot" diimpor salaku plt sarta dipaké pikeun charting data jeung visualizations.
Tungtungna, "dipulut jalma lfw" diimpor ti sklearn. set data sareng dianggo pikeun ngamuat set data pangenalan raray. Pungsi ieu mangrupa bagian tina toolkit scikit-diajar. Hatur nuhun kana fungsi ieu kami henteu kedah unggah set data anu sanés. Ieu parantos diwangun dina sckit-learning.
Na, eta mere Anjeun wasa ka rupa-rupa datasets pikeun machine learning aplikasi. Dina skénario ieu, kami nganggo metodeu fetch lfw people pikeun nyandak set data "Beungeut Dilabélan di Wild" (LFW). Ieu ngandung poto-poto raray jalma sareng labél anu aya sareng aranjeunna.
Perpustakaan ieu kritis dina palaksanaan sareng evaluasi modél pangenal wajah urang.
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt from sklearn.datasets
import fetch_lfw_people
Praprocessing sareng ngamuat set data Pangenal Raray
Dina bagian ieu, urang ngagunakeun fungsi "dipulut jalma lfw" pikeun preprocess data pangakuan raray. Kahiji, urang make dipulut jalma lfw kalawan pilihan "min raray per jalma = 60". Ieu nunjukkeun yén urang ngan ukur hoyong ngalebetkeun jalma-jalma dina set data anu gaduh sahenteuna 60 poto. Lantaran kitu, urang mastikeun yén modél urang gaduh data anu nyukupan pikeun diajar. Ogé, ieu lowers bahaya overfitting.
Data sareng labél tina objék faces teras diekstrak sareng ditugaskeun kana variabel X sareng y. X hol.
Kami ayeuna siap ngalatih modél pangenal raray kami nganggo data sareng labél anu tos diprosés.
faces = fetch_lfw_people(min_faces_per_person=60)
X = faces.data
y = faces.target
target_names = faces.target_names
Pamisah Latihan jeung Test susunan
Dina léngkah ieu, urang ngabagi set data pangenal raray urang jadi dua bagian ngagunakeun métode pamisah test karéta tina pilihan sklearn.model. Tujuan tina pamisah ieu nyaéta pikeun meunteun kinerja modél urang saatos latihan
Fungsi pamisah test karéta narima salaku inputs data X jeung labél y. Sareng, éta ngabagi aranjeunna kana set latihan sareng tés. Urang milih ukuran tés = 0.2 dina conto ieu. Ieu nunjukkeun yén 20% data bakal dianggo salaku set tés sareng 80% salaku set latihan. Saterusna, kami nganggo kaayaan acak = 42 pikeun mastikeun yén data dibagi konsistén unggal waktos kode anu dipigawé.
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)
Nyiapkeun Data
Tujuan tina preprocessing data nyaéta nyiapkeun pikeun asup kana modél. Data ieu tos diprosés dina kode ieu ku ngabagi unggal titik data ku 255.
Naon motivasi urang pikeun ngahontal ieu? Normalisasi mangrupikeun prosedur preprocessing anu dianggo dina pembelajaran mesin pikeun ngajamin yén sadaya fitur dina skala anu sami. Dina skenario ieu, ngabagi ku 255 skala data ka rentang 0 nepi ka 1, nu mangrupakeun lengkah normalisasi data gambar biasa.
Ieu ngagancangkeun konvergénsi modél sareng tiasa ningkatkeun kinerjana.
X_train = X_train / 255.0
X_test = X_test / 255.0
Nyiptakeun Mode
Kami hoyong ngaidentipikasi individu anu wajahna muncul dina gambar. Dina hal ieu, urang bakal ngagunakeun jaringan disambungkeun pinuh, mindeng dipikawanoh salaku jaringan padet. Ieu mangrupikeun jaringan saraf jieunan anu dianggo pikeun nyiptakeun modél.
Jaringan saraf jieunan dimodelkeun dumasar kana kumaha otak manusa beroperasi sareng diatur. Éta diwangun ku titik ngolah inpormasi atanapi neuron anu dikaitkeun. Unggal neuron dina lapisan dina jaringan padet numbu ka unggal neuron dina lapisan luhur eta.
Modél ieu ngagaduhan opat lapisan dina kode ieu. Pikeun asup kana lapisan salajengna, data input diratakeun dina lapisan kahiji kana susunan hiji diménsi. Neuron 128 sareng 64 dina dua lapisan di handap ieu, sasuai, lengkep dihubungkeun.
Fungsi aktivasina ReLU mangrupikeun fungsi aktivasina unik anu dianggo ku lapisan ieu. Kalayan éta, urang tiasa kéngingkeun modél diajar korelasi non-linier antara input sareng kaluaran. Lapisan terakhir nganggo pungsi aktivasina softmax pikeun ngaramalkeun. Sareng, éta mangrupikeun lapisan anu lengkep sareng saloba neuron anu aya kelas poténsial.
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')
])
Nyusun Modél
Modél ieu disusun ngagunakeun fungsi "compile". Urang kudu nyiapkeun modél latihan. Janten, urang bakal nangtukeun pangoptimal, fungsi leungitna, sareng métrik anu bakal dianggo pikeun meunteun modél.
Salila latihan, optimizer tanggung jawab pikeun ngarobah parameter modél. The "adam" optimizer mangrupakeun téhnik optimasi jero-learning populér.
Kami nganggo fungsi leungitna pikeun meunteun kinerja modél dina data latihan. Kusabab labél target mangrupakeun integer ngagambarkeun kelas gambar tinimbang hiji-panas disandikeun vektor, fungsi leungitna "sparse categorical crossentropy" nguntungkeun.
Tungtungna, urang nangtukeun metrics ka assess model, dina hal ieu, "akurasi".
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
Pelatihan Modél
Urang bakal ngagunakeun fungsi "pas" pikeun ngalatih model.
Kami bakal nyayogikeun data pelatihan (kareta X) sareng labél anu aya hubunganana (karéta y), ogé netepkeun jumlah epochs (iterasi) pikeun dijalankeun salaku 10. Prosedur latihan ngarobih beurat modél pikeun ngirangan rugi (bédana antara diprediksi sareng labél nyata) sareng ningkatkeun akurasi data latihan.
model.fit(X_train, y_train, epochs=10)
Evaluasi modél
Ayeuna, urang kedah meunteun modél anu dilatih dina data tés. Kami nganggo leungitna tés sareng akurasi tés dianggo pikeun meunteun kinerja modél. Dina uji data tés X sareng uji labél y tés, urang kedah nyauran "fungsi model.evaluate"
Fungsina ngahasilkeun akurasi tés sareng leungitna tés. Variabel uji leungitna sareng akurasi tés masing-masing ngandung nilai ieu. Tungtungna, kami nganggo fungsi "print" pikeun kaluaran akurasi tés.
test_loss, test_accuracy = model.evaluate(X_test, y_test)
print("Test accuracy:", test_accuracy)
Ngaramal Kelas sareng Meunangkeun Kelas anu Diprediksi
Ngagunakeun modél latihan jeung data tés, algoritma nyieun prediksi. Nalika data test disalurkeun kana métode "model.predict", outputs hiji Asép Sunandar Sunarya prediksi pikeun tiap gambar dina set test.
Ngaran kelas sasaran pikeun tiap gambar lajeng dicandak tina daptar "ngaran target" ngagunakeun fungsi "np.argmax" pikeun ngaidentipikasi indéks jeung probabiliti diprediksi greatest. Indéks ieu lajeng dipaké pikeun nangtukeun kelas diprediksi pikeun tiap gambar.
Ngagunakeun daptar pamahaman, sakabéh prediksi dina "prediksi" Asép Sunandar Sunarya tunduk kana metoda ieu, hasilna daptar "diprediksi kelas".
predictions = model.predict(X_test)
predicted_classes = [target_names[np.argmax(prediction)] for prediction in predictions]
Visualizing nu Prediksi
Ayeuna urang tiasa ningali kumaha modél urang.
Pikeun meunteun kumaha modél éta, 10 poto munggaran sareng prediksina bakal ditingalikeun. Bakal plot poto dina grayscale tur mintonkeun duanana kelas sabenerna gambar jeung kelas diprediksi ku model ngagunakeun modul matplotlib.pyplot.
Fungsi "imshow" dipaké ku loop pikeun plot unggal 10 poto set test munggaran. Ngaran target[y test[i]] jeung kelas diprediksi[i] dipaké pikeun nangtukeun kelas sabenerna gambar jeung kelas diprediksi, masing-masing. Judul unggal plot lajeng dituduhkeun ku klasifikasi ieu.
Tungtungna, plot dipintonkeun ngagunakeun métode 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()
Bérésan
TensorFlow nawiskeun lingkungan anu lengkep sareng fleksibel pikeun nyiptakeun modél pembelajaran mesin.
Ku cara ngepaskeun modél pikeun nyumponan sarat khusus atanapi ku cara nambihan kamajuan énggal dina pembelajaran mesin, akurasi modél tiasa langkung ningkat.
TensorFlow sareng pangenal raray sigana bakal dianggo langkung seueur dina industri sapertos sistem kaamanan, auténtikasi biometrik, sareng kasehatan di hareup. Urang bakal ningali inovasi anu pikaresepeun teu lami.
Leave a Reply