TensorFlow dia fitaovana isan-karazany hamoronana maodely fianarana milina.
Amin'ity lahatsoratra ity, hojerentsika ny fomba hamoronana rafitra famantarana ny tarehy miaraka amin'ny TensorFlow, rafitra fianarana milina misokatra. Handinika ireo dingana tena ilaina amin'ny famoronana rafitra famantarana ny tarehy mahomby isika, manomboka amin'ny fanangonana sy fanomanana ny angona mba hanofanana sy fanombanana modely.
Hahazo traikefa amin'ny tanana voalohany miaraka amin'ny TensorFlow ianao mba hamoronana famantarana ny tarehy miaraka amin'ny fanampian'ny snippet kaody sy ohatra tena misy. Iangaviana ianao hanaraka ny tohiny.
Fampidirana ny TensorFlow
TensorFlow dia tranomboky maimaim-poana sy misokatra. Izy io dia boaty fitaovan'ny matematika an'ohatra izay mampiasa dataflow sy fandaharana azo avahana. Afaka mitantana asa isan-karazany miaraka aminy ianao, anisan'izany ny lalina ny tambazotran'ny fahasalamana fampiofanana.
TensorFlow dia mahery sy azo ampifanarahana. Toy izany koa, dia fitaovana lehibe ho an'ny fampandrosoana sy fametrahana modely fianarana milina. Azonao atao ny manangana modely saro-takarina miaraka amin'ny sosona maromaro sy fiasan'ny tensor. Ary koa, ny modely efa vita ao amin'ny tranomboky dia azo amboarina tsara ho an'ny filana manokana.
Ankoatr'izay, TensorFlow dia manana vondrom-piarahamonina mpampiasa lehibe sy mivelatra. Noho izany, be dia be ny fampahalalana sy fanampiana ho an'ny olona vaovao amin'ny sehatra.
TensorFlow dia malaza amin'ny fianarana milina amin'ny ampahany satria manome rindran-damina miafara amin'ny farany. Noho izany, azonao atao ny manamboatra, manofana ary mametraka modely. Izy io dia manome fitaovana sy paikady hanatsarana sy hanesorana ireo modely mba hifanaraka amin'ny fitakiana manokana. Miovaova izany manomboka amin'ny fanodinana angon-drakitra ka hatramin'ny fametrahana modely.
Inona no atao hoe Famantarana tarehy?
Ny famantarana ny tarehy dia a fahitana computer asa izay mamaritra ny famantarana ny olona iray mifototra amin'ny tarehiny. Ity teknika ity dia mamantatra ny toetran'ny tarehy, toy ny bikan'ny maso sy ny orona ary ny vava.
Ary, mampitaha azy ireo amin'ny angon-drakitra misy endrika fantatra mba hamantarana ny lalao. Ny famantarana ny tarehy dia manana fampiasana maro, anisan'izany ny rafitra fiarovana, fandaminana sary, ary fanamarinana biometrika.
Nitombo be tato anatin'ny taona vitsivitsy ny fahamarinan'ny algorithm amin'ny famantarana ny tarehy vokatry ny fandrosoana amin'ny fianarana milina.
Manafatra tranomboky ilaina
Alohan'ny hanombohana na inona na inona dia mila manafatra ireo tranomboky ilaina amin'ny modely misy antsika isika. Tensorflow (tf) dia nafarana sy ampiasaina hamoronana sy hampiofanana ny modely. <(p>
Ny "numpy" dia manao kajy matematika sy fanodinana data.
"matplotlib.pyplot" dia nafarana ho plt ary ampiasaina amin'ny angon-drakitra tabilao sy sary.
Farany, nafarana avy any amin'ny sklearn ny “fetch lfw people”. angon-drakitra ary ampiasaina hametahana ny angon-drakitra famantarana ny tarehy. Ity fiasa ity dia ampahany amin'ny kitapom-pitaovana fianarana scikit. Noho ity asa ity dia tsy nila nampiakatra angona hafa izahay. Ity dia efa natsangana tamin'ny sckit-learn.
Ary, manome anao fahafahana miditra amin'ny karazana angona momba ny fianarana milina fampiharana. Amin'ity toe-javatra ity, mampiasa ny fomba maka olona lfw izahay mba haka ny angon-drakitra "Endrika misy marika any an'ala" (LFW). Ahitana sarin'ny endrik'olona ary koa ny etikety miaraka aminy.
Ireo trano famakiam-boky ireo dia tena manan-danja amin'ny fampiharana sy fanombanana ny maodely famantarana ny tarehy.
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt from sklearn.datasets
import fetch_lfw_people
Fanodinana mialoha sy fametahana ny angon-drakitra famantarana ny tarehy
Amin'ity ampahany ity dia mampiasa ny fiasa "manala olona lfw" izahay mba hanodinana mialoha ny angona famantarana ny tarehy. Voalohany, ampiasainay ny maka olona lfw miaraka amin'ny safidy hoe "tava minitra isaky ny olona = 60". Midika izany fa olona manana sary 60 farafahakeliny no te hampidirina ao amin'ny angon-drakitra. Noho izany, manome antoka izahay fa ny modely misy anay dia manana angona ampy hianarana. Izany koa dia mampihena ny loza ateraky ny overfitting.
Ny angona sy ny mari-pamantarana avy amin'ny zavatra faces dia alaina avy eo ary apetraka amin'ny variables X sy y. X hol.
Vonona izahay hampiofana ny maodely famantarana ny tarehy amin'ny alàlan'ny angona sy etikety efa voaomana.
faces = fetch_lfw_people(min_faces_per_person=60)
X = faces.data
y = faces.target
target_names = faces.target_names
Fizarana fiofanana sy andrana
Amin'ity dingana ity, nozarainay ho antsasany roa ny angon-drakitra famantarana ny tarehy amin'ny alàlan'ny fomba fisarahana fitsapana fiaran-dalamby avy amin'ny fisafidianana sklearn.model. Ny tanjon'ity fizarana ity dia ny hanombanana ny fahombiazan'ny modely aorian'ny fiofanana
Ny fiasan'ny fizarazaran'ny fiaran-dalamby dia manaiky ho fampidirana angona X sy marika y. Ary, mizara azy ireo ho fiofanana sy fitsapana. Mifidiana ny haben'ny fitsapana = 0.2 amin'ity ohatra ity. Midika izany fa ny 20% amin'ny angon-drakitra dia hampiasaina ho an'ny fitsapana ary ny 80% ho an'ny fiofanana. Ankoatra izany, mampiasa fanjakana kisendrasendra = 42 izahay mba hahazoana antoka fa mizara tsy tapaka ny angon-drakitra isaky ny vita ny code.
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)
Fanomanana ny angona
Ny tanjona amin'ny fanodinana angon-drakitra dia ny hanomanana azy amin'ny fidirana amin'ny modely. Ny angon-drakitra dia voahodina amin'ity fehezan-dalàna ity amin'ny fizarana ny teboka tsirairay amin'ny 255.
Inona no nanosika anay hanatratra izany? Ny normalization dia fomba fiasa mialoha ampiasaina amin'ny fianarana milina mba hiantohana fa mitovy ny habeny rehetra. Amin'ity toe-javatra ity, mizara amin'ny 255 ny mizana ny angon-drakitra amin'ny 0 ka hatramin'ny 1, izay dingana ara-dalàna ny angon-drakitra mahazatra.
Manafaingana ny fampifanarahana ny modely izany ary mety hampitombo ny fahombiazany.
X_train = X_train / 255.0
X_test = X_test / 255.0
Mamorona ny maody
Tianay ny hamantatra ilay olona miseho amin'ny sary ny tarehiny. Amin'ity tranga ity, dia hampiasa tambajotra mifandray tanteraka isika, izay matetika antsoina hoe tamba-jotra matevina. Izy io dia tambajotra neural artifisialy izay nampiasaina hamoronana ny modely.
Ny tambajotra neural artifisialy dia modely amin'ny fomba fiasan'ny atidoha sy ny fandaminana azy. Izy ireo dia voaforon'ny node fanodinana fampahalalana na neuron izay mifamatotra. Ny neuron tsirairay ao anaty sosona iray ao anaty tambajotra matevina dia mifamatotra amin'ny neuron rehetra ao amin'ny sosona eo amboniny.
Ny modely dia manana sosona efatra amin'ity code ity. Raha ampidirina ao amin'ny sosona manaraka, ny angon-drakitra fampidirana dia apetaka eo amin'ny sosona voalohany ho laharana iray. Ny neurons 128 sy 64 ao amin'ny sosona roa manaraka, araka izany, dia mifamatotra tanteraka.
Ny asa fampahavitrihana ReLU dia fiasa fampahavitrihana tokana ampiasain'ireo sosona ireo. Miaraka amin'izany, afaka mahazo ny modely isika hianatra ny fifandraisana tsy misy tsipika eo amin'ny fidirana sy ny vokatra. Ny sosona farany dia mampiasa ny fampahavitrihana softmax hanaovana faminaniana. Ary, sosona mifamatotra tanteraka miaraka amin'ny neurons betsaka araka izay mety ho kilasy.
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')
])
Ny fanangonana ny Modely
Ny modely dia natambatra amin'ny fampiasana ny "compile". Mila manomana ny modely ho an'ny fampiofanana isika. Noho izany, hamaritra ny optimizer, ny asa fatiantoka, ary ny metrika izay hampiasaina hanombanana ny modely.
Mandritra ny fiofanana, ny optimizer dia miandraikitra ny fanovana ny mari-pamantarana modely. Ny "adam" optimizer dia teknika fanatsarana ny fianarana lalina malaza.
Mampiasa ny fatiantoka izahay hanombanana ny fahombiazan'ny modely amin'ny angona fanofanana. Satria ny etikety kendrena dia integer mampiseho ny kilasin'ny sary fa tsy ny vector misy kaody mafana iray, dia tsara ny asa fatiantoka "sparse categorical crossentropy".
Farany, mamaritra ny metrika izahay hanombanana ny modely, amin'ity tranga ity, "fahamarinana".
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
Model Training
Hampiasa ny fiasa "fit" izahay hanofanana ny modely.
Hanome ny angon-drakitra fanofanana (fiara X) sy etikety mifandraika amin'izany (fiaranam-piaramanidina y) izahay, ary hametraka ny isan'ny vanim-potoana (iterations) ho 10. Ny fomba fanofanana dia manova ny lanjan'ny maodely mba hampihenana ny fatiantoka vinavinaina sy marika tena izy) ary manatsara ny fahamarinan'ny angona fanofanana.
model.fit(X_train, y_train, epochs=10)
Model Evaluation
Ankehitriny, mila manombana ny modely voaofana momba ny angona fitsapana isika. Mampiasa ny fahaverezan'ny fitsapana izahay ary ny fahamarinan'ny fitsapana dia ampiasaina hanombanana ny fahombiazan'ny modely. Ao amin'ny test data X test sy ny test labels y test, mila miantso ny "model.evaluate function" isika.
Ny asa dia mamoaka ny fahamarinan'ny fitsapana sy ny fahaverezan'ny fitsapana. Ny fatiantoka andrana sy ny fahamarinan'ny fitsapana, tsirairay avy, dia ahitana ireo sanda ireo. Farany, mampiasa ny asa "printy" izahay hamoahana ny fahamarinan'ny fitsapana.
test_loss, test_accuracy = model.evaluate(X_test, y_test)
print("Test accuracy:", test_accuracy)
Kilasy maminavina sy mahazo ireo kilasy voavinavina
Amin'ny fampiasana ny modely fanofanana sy ny angona fitsapana, ny algorithm dia manao faminaniana. Rehefa ampitaina amin'ny fomba "model.predict" ny angona andrana, dia mamoaka vinavina maromaro ho an'ny sary tsirairay ao amin'ny andiany fitsapana.
Ny anaran'ny kilasy kendrena ho an'ny sary tsirairay dia alaina avy eo amin'ny lisitry ny "anaran'ny kendrena" amin'ny fampiasana ny fiasa "np.argmax" hamantarana ny tondro miaraka amin'ny vinavina lehibe indrindra. Ity fanondroana ity dia ampiasaina hamaritana ny kilasy vinavinaina ho an'ny sary tsirairay.
Amin'ny fampiasana fahatakarana lisitra, ny faminaniana rehetra ao amin'ny laharan'ny "faminaniana" dia iharan'ity fomba ity, ka miteraka lisitra "kilasy voavinavina".
predictions = model.predict(X_test)
predicted_classes = [target_names[np.argmax(prediction)] for prediction in predictions]
Fandinihana ny faminaniana
Hitantsika izao ny endrik'ilay modely.
Mba hanombanana ny fandehan'ny modely, dia haseho ireo sary 10 voalohany sy ny faminaniany. Izy io dia hametraka ny sary amin'ny grayscale ary hampiseho ny tena kilasy amin'ny sary sy ny kilasy vinavinan'ny modely amin'ny fampiasana ny maody matplotlib.pyplot.
Ny fiasan'ny "imshow" dia ampiasain'ny for loop mba hametahana ny tsirairay amin'ireo sary andrana 10 voalohany. Ny anarana kendrena[y test[i]] sy ny kilasy voavinavina[i] dia ampiasaina hamaritana ny tena kilasy sy ny kilasy voavinavina. Avy eo dia asehon'ireo fanasokajiana ireo ny lohatenin'ny sombin-tantara tsirairay.
Farany, aseho amin'ny alalan'ny fomba plt.show() ilay tetika.
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()
Fonosy
TensorFlow dia manolotra tontolo feno sy mora azo amin'ny famoronana maodely fianarana milina.
Amin'ny alàlan'ny fanitsiana tsara ny maodely mifanaraka amin'ny fepetra manokana na amin'ny fampidirana fivoarana vaovao amin'ny fianarana milina, dia mety hitombo bebe kokoa ny fahamarinan'ilay modely.
Ny TensorFlow sy ny famantarana ny tarehy dia azo inoana fa hampiasaina bebe kokoa amin'ny indostria toy ny rafitra fiarovana, fanamarinana biometrika ary fitsaboana amin'ny ho avy. Hahita fanavaozana mahavariana isika ato ho ato.
Leave a Reply