TensorFlow minangka alat serbaguna kanggo nggawe model pembelajaran mesin.
Ing kirim iki, kita bakal ndeleng carane nggawe sistem pangenalan pasuryan nganggo TensorFlow, kerangka learning machine open-source. Kita bakal nliti proses penting kanggo nggawe sistem pangenalan pasuryan sing sukses, saka ngumpulake lan nyiapake data kanggo nglatih lan ngevaluasi model.
Sampeyan bakal entuk pengalaman langsung karo TensorFlow kanggo nggawe pangenalan rai kanthi bantuan potongan kode lan conto ing donya nyata. Sampeyan olèh tindakake bebarengan nalika kita nerusake.
Pambuka TensorFlow
TensorFlow minangka perpustakaan gratis lan sumber terbuka. Iki minangka kothak piranti matematika simbolis sing nggunakake aliran data lan pemrograman sing bisa dibedakake. Sampeyan bisa nangani sawetara tugas karo, kalebu jero jaringan saraf latihan.
TensorFlow kuat lan bisa adaptasi. Kajaba iku, iku alat sing apik kanggo ngembangake lan nyebarake model pembelajaran mesin. Sampeyan bisa mbangun model rumit kanthi sawetara lapisan lan operasi tensor. Uga, model sing wis dibangun ing perpustakaan bisa disetel kanthi apik kanggo kabutuhan tartamtu.
Salajengipun, TensorFlow nduwe komunitas pangguna sing gedhe lan berkembang. Dadi, ana akeh informasi lan bantuan kanggo individu sing anyar ing platform kasebut.
TensorFlow populer kanggo learning machine sebagian amarga nyedhiyakake alur kerja pungkasan. Dadi, sampeyan bisa kanthi gampang mbangun, nglatih lan nyebarake model. Nyedhiyakake alat lan strategi kanggo ningkatake lan nggedhekake model supaya cocog karo panjaluk tartamtu. Iki beda-beda saka pra-proses data nganti panyebaran model.
Apa Pangenalan Wajah?
Pangenalan pasuryan yaiku a wahyu komputer tugas sing ngenali identifikasi wong adhedhasar pasuryane. Teknik iki ngenali sipat rai, kayata wangun lan tekstur mripat, irung, lan tutuk.
Na, iku mbandhingaké menyang database saka pasuryan dikenal kanggo ngenali match. Pangenalan rai duwe sawetara kegunaan, kalebu sistem keamanan, organisasi foto, lan otentikasi biometrik.
Akurasi algoritma pangenalan pasuryan wis saya tambah akeh ing taun-taun pungkasan minangka asil terobosan ing machine learning.
Ngimpor Pustaka sing Perlu
Sadurunge miwiti apa wae, kita kudu ngimpor perpustakaan sing dibutuhake kanggo model kita. Tensorflow (tf) diimpor lan digunakake kanggo nggawe lan nglatih model kasebut. <(p>
"numpy" nindakake petungan matematika lan pangolahan data.
"matplotlib.pyplot" diimpor minangka plt lan digunakake kanggo grafik lan visualisasi data.
Pungkasan, "njupuk wong lfw" diimpor saka sklearn. dataset lan digunakake kanggo mbukak dataset pangenalan rai. Fungsi iki minangka bagéan saka toolkit scikit-sinau. Thanks kanggo fungsi iki, kita ora kudu ngunggah set data liyane. Iki wis dibangun ing sckit-sinau.
Na, menehi akses menyang sawetara saka sudhut dataset kanggo machine learning aplikasi. Ing skenario iki, kita nggunakake metode fetch lfw people kanggo njupuk set data "Wajah Berlabel ing Alam Liar" (LFW). Iki kalebu foto pasuryan wong lan uga label sing disedhiyakake.
Pustaka iki kritis ing implementasine lan evaluasi model pangenalan pasuryan kita.
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt from sklearn.datasets
import fetch_lfw_people
Preprocessing lan Loading Dataset Pangenalan Pasuryan
Ing bagean iki, kita nggunakake fungsi "Fetch lfw people" kanggo preprocess data pangenalan rai. Pisanan, kita nggunakake fetch lfw wong kanthi pilihan "min pasuryan saben wong = 60". Iki nuduhake yen kita mung pengin nyakup wong ing set data sing duwe paling ora 60 foto. Mula, kita mesthekake yen model kita duwe data sing cukup kanggo sinau. Uga, iki nyuda bebaya overfitting.
Data lan label saka obyek pasuryan banjur diekstrak lan ditugasake menyang variabel X lan y. X wae.
Saiki kita siyap nglatih model pangenalan rai nggunakake data lan label sing wis diproses.
faces = fetch_lfw_people(min_faces_per_person=60)
X = faces.data
y = faces.target
target_names = faces.target_names
Pamisahan Training lan Test Sets
Ing langkah iki, kita dibagi dataset pangenalan pasuryan dadi rong bagéan nggunakake cara test Sepur pamisah saka sklearn.model pilihan. Tujuan saka pamisah iki yaiku kanggo netepake kinerja model kita sawise latihan
Fungsi pamisah test train nampa minangka input data X lan label y. Lan, dibagi dadi latihan lan set tes. Kita milih ukuran test = 0.2 ing conto iki. Iki nuduhake yen 20% data bakal digunakake minangka set tes lan 80% minangka set latihan. Salajengipun, kita nggunakake negara acak = 42 kanggo mesthekake yen data dipérang konsisten saben wektu kode dileksanakake.
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)
Nyiapake Data
Tujuan saka preprocessing data yaiku kanggo nyiapake kanggo mlebu menyang model. Data kasebut wis diproses sadurunge ing kode iki kanthi dibagi saben titik data kanthi 255.
Apa motivasi kita kanggo entuk iki? Normalisasi minangka prosedur preprocessing sing digunakake ing machine learning kanggo njamin kabeh fitur ana ing skala sing padha. Ing skenario iki, dibagi kanthi 255 skala data menyang kisaran 0 nganti 1, yaiku langkah normalisasi data gambar biasa.
Iki nyepetake konvergensi model lan bisa nambah kinerja.
X_train = X_train / 255.0
X_test = X_test / 255.0
Nggawe Mode
Kita pengin ngenali individu sing pasuryane katon ing gambar. Ing kasus iki, kita bakal nggunakake jaringan sing disambungake kanthi lengkap, asring dikenal minangka jaringan padhet. Iki minangka jaringan syaraf tiruan sing digunakake kanggo nggawe model kasebut.
Jaringan syaraf tiruan dimodelake miturut cara otak manungsa beroperasi lan diatur. Iki digawe saka node utawa neuron pangolahan informasi sing disambungake. Saben neuron ing lapisan ing jaringan sing padhet disambung karo saben neuron ing lapisan ing ndhuwur.
Model kasebut nduweni papat lapisan ing kode iki. Kanggo dipakani menyang lapisan sabanjure, data input diratakake ing lapisan pisanan dadi array siji-dimensi. Neuron 128 lan 64 ing rong lapisan ing ngisor iki, mula disambungake.
Fungsi aktivasi ReLU minangka fungsi aktivasi unik sing digunakake dening lapisan kasebut. Kanthi iku, kita bisa njaluk model sinau korélasi non-linear antarane input lan output. Lapisan pungkasan nggunakake fungsi aktivasi softmax kanggo nggawe prediksi. Lan, iku lapisan sing disambungake kanthi akeh neuron amarga ana kelas potensial.
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')
])
Kompilasi saka Model
Model kasebut dikompilasi nggunakake fungsi "kompilasi". Kita kudu nyiapake model kanggo latihan. Dadi, kita bakal nemtokake pangoptimal, fungsi mundhut, lan metrik sing bakal digunakake kanggo netepake model kasebut.
Sajrone latihan, pangoptimal tanggung jawab kanggo ngganti paramèter model. Pangoptimal "adam" minangka teknik optimalisasi sinau jero sing populer.
Kita nggunakake fungsi mundhut kanggo netepke kinerja model ing data latihan. Amarga label target minangka integer sing nggambarake kelas gambar tinimbang vektor sing dienkode siji-panas, fungsi mundhut "crossentropy kategoris langka" luwih apik.
Pungkasan, kita nemtokake metrik kanggo netepake model, ing kasus iki, "akurasi".
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
Latihan Model
Kita bakal nggunakake fungsi "pas" kanggo olahraga model.
Kita bakal nyedhiyakake data latihan (sepur X) lan label sing gegandhengan (sepur y), uga nyetel jumlah epochs (ulangan) kanggo mbukak minangka 10. Prosedur latihan ngowahi bobot model kanggo nyuda mundhut (prabédan antarane prediksi lan label nyata) lan nambah akurasi data latihan.
model.fit(X_train, y_train, epochs=10)
Evaluasi Model
Saiki, kita kudu netepake model sing dilatih ing data tes. Kita nggunakake mundhut test lan akurasi test digunakake kanggo netepke kinerja model. Ing test data test X lan test labels y test, kita kudu nelpon "model.evaluate function"
Fungsi kasebut ngasilake akurasi tes lan mundhut tes. Kerugian tes variabel lan akurasi tes, masing-masing, ngemot nilai kasebut. Pungkasan, kita nggunakake fungsi "print" kanggo ngasilake akurasi tes.
test_loss, test_accuracy = model.evaluate(X_test, y_test)
print("Test accuracy:", test_accuracy)
Prediksi Kelas lan Njupuk Kelas Prediksi
Nggunakake model latihan lan data tes, algoritma nggawe prediksi. Nalika data test liwati menyang "model.predict" cara, output Uploaded prediksi kanggo saben gambar ing pesawat test.
Jeneng kelas target kanggo saben gambar banjur dijupuk saka dhaptar "jeneng target" nggunakake fungsi "np.argmax" kanggo ngenali indeks kanthi kemungkinan paling gedhe sing diprediksi. Indeks iki banjur digunakake kanggo nemtokake kelas prediksi kanggo saben gambar.
Nggunakake pangerten dhaptar, kabeh prediksi ing larik "prediksi" tundhuk karo metode iki, ngasilake dhaptar "kelas sing diprediksi".
predictions = model.predict(X_test)
predicted_classes = [target_names[np.argmax(prediction)] for prediction in predictions]
Visualisasi Prediksi
Saiki kita bisa ndeleng carane model kita katon.
Kanggo ngevaluasi kepiye model kasebut, 10 foto pisanan lan ramalane bakal ditampilake. Iku bakal plot foto ing grayscale lan nampilake loro kelas nyata saka gambar lan kelas mbadek dening model nggunakake modul matplotlib.pyplot.
Fungsi "imshow" digunakake dening daur ulang kanggo plot saben 10 foto pesawat test pisanan. Jeneng target[y test[i]] lan kelas sing diprediksi[i] digunakake kanggo nemtokake kelas nyata gambar lan kelas sing diprediksi. Irah-irahan saben plot banjur dituduhake dening klasifikasi kasebut.
Akhire, plot ditampilake nggunakake cara 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()
Bungkus
TensorFlow nawakake lingkungan sing lengkap lan fleksibel kanggo nggawe model pembelajaran mesin.
Kanthi nyempurnakake model kanggo nyukupi syarat tartamtu utawa nambahake pangembangan anyar ing machine learning, akurasi model bisa uga tambah luwih akeh.
TensorFlow lan pangenalan rai bisa uga digunakake ing industri kaya sistem keamanan, otentikasi biometrik, lan perawatan kesehatan ing mangsa ngarep. Kita bakal weruh inovasi sing apik banget.
Ninggalake a Reply