മെഷീൻ ലേണിംഗ് മോഡലുകൾ സൃഷ്ടിക്കുന്നതിനുള്ള ഒരു ബഹുമുഖ ഉപകരണമാണ് TensorFlow.
ഈ പോസ്റ്റിൽ, ഒരു ഓപ്പൺ സോഴ്സ് മെഷീൻ ലേണിംഗ് ചട്ടക്കൂടായ TensorFlow ഉപയോഗിച്ച് ഒരു മുഖം തിരിച്ചറിയൽ സംവിധാനം എങ്ങനെ സൃഷ്ടിക്കാമെന്ന് നോക്കാം. ഒരു വിജയകരമായ മുഖം തിരിച്ചറിയൽ സംവിധാനം സൃഷ്ടിക്കുന്നതിനുള്ള അവശ്യ പ്രക്രിയകൾ ഞങ്ങൾ പരിശോധിക്കും, ഡാറ്റ ശേഖരിക്കുന്നതും തയ്യാറാക്കുന്നതും മുതൽ ഒരു മാതൃകയെ പരിശീലിപ്പിക്കുന്നതിനും വിലയിരുത്തുന്നതിനും.
കോഡ് സ്നിപ്പെറ്റുകളുടെയും യഥാർത്ഥ ലോക ഉദാഹരണങ്ങളുടെയും സഹായത്തോടെ മുഖം തിരിച്ചറിയൽ സൃഷ്ടിക്കാൻ TensorFlow ഉപയോഗിച്ച് നിങ്ങൾക്ക് നേരിട്ടുള്ള അനുഭവം ലഭിക്കും. ഞങ്ങൾ മുന്നോട്ട് പോകുമ്പോൾ പിന്തുടരാൻ നിങ്ങൾക്ക് സ്വാഗതം.
ടെൻസർഫ്ലോയുടെ ആമുഖം
ടെൻസർഫ്ലോ ഒരു സ്വതന്ത്രവും ഓപ്പൺ സോഴ്സ് ലൈബ്രറിയുമാണ്. ഡാറ്റാഫ്ലോയും വ്യത്യസ്തമായ പ്രോഗ്രാമിംഗും ഉപയോഗിക്കുന്ന ഒരു പ്രതീകാത്മക ഗണിത ടൂൾബോക്സാണിത്. ആഴത്തിലുള്ളത് ഉൾപ്പെടെ നിരവധി ജോലികൾ നിങ്ങൾക്ക് ഇത് ഉപയോഗിച്ച് കൈകാര്യം ചെയ്യാൻ കഴിയും ന്യൂറൽ നെറ്റ്വർക്ക് പരിശീലനം.
ടെൻസർഫ്ലോ ശക്തവും അനുയോജ്യവുമാണ്. അതുപോലെ, ഇത് വികസിപ്പിക്കുന്നതിനുള്ള മികച്ച ഉപകരണമാണ് മെഷീൻ ലേണിംഗ് മോഡലുകൾ വിന്യസിക്കുന്നു. നിരവധി ലെയറുകളും ടെൻസർ പ്രവർത്തനങ്ങളും ഉപയോഗിച്ച് നിങ്ങൾക്ക് സങ്കീർണ്ണമായ മോഡലുകൾ നിർമ്മിക്കാൻ കഴിയും. കൂടാതെ, ലൈബ്രറിയിലെ മുൻകൂട്ടി നിർമ്മിച്ച മോഡലുകൾ പ്രത്യേക ആവശ്യങ്ങൾക്കായി നന്നായി ക്രമീകരിക്കാൻ കഴിയും.
കൂടാതെ, ടെൻസർഫ്ലോയ്ക്ക് വളരെ വലുതും വികസിക്കുന്നതുമായ ഒരു ഉപയോക്തൃ കമ്മ്യൂണിറ്റിയുണ്ട്. അതിനാൽ, പ്ലാറ്റ്ഫോമിൽ പുതിയതായി വരുന്ന വ്യക്തികൾക്കായി ധാരാളം വിവരങ്ങളും സഹായങ്ങളും ഉണ്ട്.
ടെൻസർഫ്ലോ ജനപ്രിയമാണ് മെഷീൻ ലേണിംഗ് ഭാഗികമായി കാരണം ഇത് ഒരു എൻഡ്-ടു-എൻഡ് വർക്ക്ഫ്ലോ നൽകുന്നു. അതിനാൽ, നിങ്ങൾക്ക് എളുപ്പത്തിൽ മോഡലുകൾ നിർമ്മിക്കാനും പരിശീലിപ്പിക്കാനും വിന്യസിക്കാനും കഴിയും. നിർദ്ദിഷ്ട ആവശ്യങ്ങൾക്ക് അനുയോജ്യമായ രീതിയിൽ മോഡലുകൾ മെച്ചപ്പെടുത്തുന്നതിനും സ്കെയിലിംഗ് ചെയ്യുന്നതിനുമുള്ള ഉപകരണങ്ങളും തന്ത്രങ്ങളും ഇത് നൽകുന്നു. ഇത് ഡാറ്റ പ്രീ-പ്രോസസ്സിംഗ് മുതൽ മോഡൽ വിന്യാസം വരെ വ്യത്യാസപ്പെടുന്നു.
എന്താണ് മുഖം തിരിച്ചറിയൽ?
മുഖം തിരിച്ചറിയൽ എ കമ്പ്യൂട്ടർ ദർശനം ഒരു വ്യക്തിയെ അവരുടെ മുഖത്തെ അടിസ്ഥാനമാക്കി തിരിച്ചറിയുന്ന ചുമതല. കണ്ണുകൾ, മൂക്ക്, വായ എന്നിവയുടെ ആകൃതിയും ഘടനയും പോലുള്ള മുഖ സവിശേഷതകളെ ഈ സാങ്കേതികവിദ്യ തിരിച്ചറിയുന്നു.
കൂടാതെ, ഒരു പൊരുത്തം തിരിച്ചറിയാൻ അവ അറിയപ്പെടുന്ന മുഖങ്ങളുടെ ഒരു ഡാറ്റാബേസുമായി താരതമ്യം ചെയ്യുന്നു. സുരക്ഷാ സംവിധാനങ്ങൾ, ഫോട്ടോ ഓർഗനൈസേഷൻ, ബയോമെട്രിക് ആധികാരികത എന്നിവ ഉൾപ്പെടെ നിരവധി ഉപയോഗങ്ങളാണ് മുഖം തിരിച്ചറിയുന്നത്.
മെഷീൻ ലേണിംഗിലെ മുന്നേറ്റങ്ങളുടെ ഫലമായി മുഖം തിരിച്ചറിയൽ അൽഗോരിതങ്ങളുടെ കൃത്യത സമീപ വർഷങ്ങളിൽ ഗണ്യമായി വർദ്ധിച്ചു.
ആവശ്യമായ ലൈബ്രറികൾ ഇറക്കുമതി ചെയ്യുന്നു
എന്തെങ്കിലും ആരംഭിക്കുന്നതിന് മുമ്പ്, നമ്മുടെ മോഡലിന് ആവശ്യമായ ലൈബ്രറികൾ ഇറക്കുമതി ചെയ്യണം. ടെൻസർഫ്ലോ (tf) ഇറക്കുമതി ചെയ്യുകയും മോഡൽ സൃഷ്ടിക്കുന്നതിനും പരിശീലിപ്പിക്കുന്നതിനും ഉപയോഗിക്കുന്നു. <(p>
"numpy" ഗണിതശാസ്ത്ര കണക്കുകൂട്ടലുകളും ഡാറ്റ പ്രോസസ്സിംഗും നടത്തുന്നു.
"matplotlib.pyplot" plt ആയി ഇറക്കുമതി ചെയ്യുകയും ഇതിനായി ഉപയോഗിക്കുകയും ചെയ്യുന്നു ഡാറ്റ ചാർട്ടിംഗും ദൃശ്യവൽക്കരണവും.
അവസാനമായി, sklearn-ൽ നിന്ന് "fetch lfw people" ഇറക്കുമതി ചെയ്തിരിക്കുന്നു. ഡാറ്റാസെറ്റുകളും ഫേഷ്യൽ റെക്കഗ്നിഷൻ ഡാറ്റാസെറ്റ് ലോഡ് ചെയ്യാൻ ഉപയോഗിക്കുന്നു. ഈ പ്രവർത്തനം സ്കിറ്റ്-ലേൺ ടൂൾകിറ്റിന്റെ ഭാഗമാണ്. ഈ പ്രവർത്തനത്തിന് നന്ദി ഞങ്ങൾക്ക് മറ്റൊരു ഡാറ്റാസെറ്റ് അപ്ലോഡ് ചെയ്യേണ്ടതില്ല. ഇത് ഇതിനകം സ്കിറ്റ്-ലേണിൽ നിർമ്മിച്ചതാണ്.
കൂടാതെ, ഇത് നിങ്ങൾക്ക് വിശാലമായ ശ്രേണിയിലേക്ക് ആക്സസ് നൽകുന്നു മെഷീൻ ലേണിംഗിനുള്ള ഡാറ്റാസെറ്റുകൾ അപേക്ഷകൾ. ഈ സാഹചര്യത്തിൽ, "ലേബൽ ചെയ്ത മുഖങ്ങൾ ഇൻ ദി വൈൽഡ്" (LFW) ഡാറ്റാസെറ്റ് വീണ്ടെടുക്കാൻ ഞങ്ങൾ lfw people എന്ന രീതി ഉപയോഗിക്കുന്നു. ആളുകളുടെ മുഖത്തിന്റെ ഫോട്ടോകളും അവരോടൊപ്പം പോകുന്ന ലേബലുകളും ഇതിൽ ഉൾപ്പെടുന്നു.
ഞങ്ങളുടെ മുഖം തിരിച്ചറിയൽ മാതൃക നടപ്പിലാക്കുന്നതിലും വിലയിരുത്തുന്നതിലും ഈ ലൈബ്രറികൾ നിർണായകമാണ്.
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt from sklearn.datasets
import fetch_lfw_people
മുഖം തിരിച്ചറിയൽ ഡാറ്റാസെറ്റ് പ്രീപ്രോസസ് ചെയ്യുകയും ലോഡ് ചെയ്യുകയും ചെയ്യുന്നു
ഈ ഭാഗത്ത്, ഫേഷ്യൽ റെക്കഗ്നിഷൻ ഡാറ്റ പ്രീപ്രോസസ് ചെയ്യാൻ ഞങ്ങൾ "fetch lfw people" ഫംഗ്ഷൻ ഉപയോഗിക്കുന്നു. ആദ്യം, "min faces per person=60" എന്ന ഓപ്ഷനുള്ള Fetch lfw ആളുകളെ ഞങ്ങൾ ഉപയോഗിക്കുന്നു. 60 ഫോട്ടോകളെങ്കിലും ഉള്ള വ്യക്തികളെ മാത്രമേ ഡാറ്റാസെറ്റിൽ ഉൾപ്പെടുത്താൻ ഞങ്ങൾ ആഗ്രഹിക്കുന്നുള്ളൂ എന്ന് ഇത് സൂചിപ്പിക്കുന്നു. അതിനാൽ, ഞങ്ങളുടെ മോഡലിന് പഠിക്കാൻ മതിയായ ഡാറ്റ ഉണ്ടെന്ന് ഞങ്ങൾ ഉറപ്പാക്കുന്നു. കൂടാതെ, ഇത് ഓവർഫിറ്റിംഗിന്റെ അപകടത്തെ കുറയ്ക്കുന്നു.
ഫേസ് ഒബ്ജക്റ്റിൽ നിന്നുള്ള ഡാറ്റയും ലേബലുകളും എക്സ്ട്രാക്റ്റുചെയ്ത് X, y വേരിയബിളുകളിലേക്ക് അസൈൻ ചെയ്യുന്നു. എക്സ് ഹോൾ.
മുൻകൂട്ടി പ്രോസസ്സ് ചെയ്ത ഡാറ്റയും ലേബലുകളും ഉപയോഗിച്ച് ഞങ്ങളുടെ മുഖം തിരിച്ചറിയൽ മോഡൽ പരിശീലിപ്പിക്കാൻ ഞങ്ങൾ ഇപ്പോൾ തയ്യാറാണ്.
faces = fetch_lfw_people(min_faces_per_person=60)
X = faces.data
y = faces.target
target_names = faces.target_names
വിഭജന പരിശീലനവും ടെസ്റ്റ് സെറ്റുകളും
ഈ ഘട്ടത്തിൽ, sklearn.model സെലക്ഷനിൽ നിന്നുള്ള ട്രെയിൻ ടെസ്റ്റ് സ്പ്ലിറ്റ് രീതി ഉപയോഗിച്ച് ഞങ്ങൾ മുഖം തിരിച്ചറിയൽ ഡാറ്റാസെറ്റ് രണ്ട് ഭാഗങ്ങളായി വിഭജിക്കുന്നു. പരിശീലനത്തിന് ശേഷം ഞങ്ങളുടെ മോഡലിന്റെ പ്രകടനം വിലയിരുത്തുക എന്നതാണ് ഈ വിഭജനത്തിന്റെ ലക്ഷ്യം
ട്രെയിൻ ടെസ്റ്റ് സ്പ്ലിറ്റ് ഫംഗ്ഷൻ ഇൻപുട്ട് ഡാറ്റാ X ആയി സ്വീകരിക്കുകയും y ലേബൽ ചെയ്യുകയും ചെയ്യുന്നു. കൂടാതെ, അത് അവരെ പരിശീലനത്തിലേക്കും ടെസ്റ്റ് സെറ്റുകളിലേക്കും വിഭജിക്കുന്നു. ഈ ഉദാഹരണത്തിൽ ഞങ്ങൾ ടെസ്റ്റ് സൈസ്=0.2 തിരഞ്ഞെടുക്കുന്നു. ഡാറ്റയുടെ 20% ടെസ്റ്റ് സെറ്റായും 80% പരിശീലന സെറ്റായും ഉപയോഗിക്കുമെന്ന് ഇത് സൂചിപ്പിക്കുന്നു. കൂടാതെ, ഓരോ തവണയും കോഡ് നിർവ്വഹിക്കുമ്പോഴും ഡാറ്റ സ്ഥിരമായി വിഭജിക്കപ്പെടുന്നുവെന്ന് ഉറപ്പാക്കാൻ ഞങ്ങൾ റാൻഡം സ്റ്റേറ്റ്=42 ഉപയോഗിക്കുന്നു.
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)
ഡാറ്റ തയ്യാറാക്കുന്നു
ഡാറ്റ പ്രീപ്രോസസ്സിന്റെ ഉദ്ദേശ്യം മോഡലിലേക്ക് പ്രവേശിക്കുന്നതിന് അത് തയ്യാറാക്കുക എന്നതാണ്. ഓരോ ഡാറ്റ പോയിന്റും 255 കൊണ്ട് ഹരിച്ചാണ് ഈ കോഡിൽ ഡാറ്റ മുൻകൂട്ടി പ്രോസസ്സ് ചെയ്യുന്നത്.
ഇത് നേടാൻ ഞങ്ങളെ പ്രേരിപ്പിച്ചതെന്താണ്? എല്ലാ സവിശേഷതകളും ഒരേ സ്കെയിലിലാണെന്ന് ഉറപ്പുനൽകാൻ മെഷീൻ ലേണിംഗിൽ ഉപയോഗിക്കുന്ന ഒരു പ്രീപ്രോസസിംഗ് നടപടിക്രമമാണ് നോർമലൈസേഷൻ. ഈ സാഹചര്യത്തിൽ, 255 കൊണ്ട് ഹരിച്ചാൽ ഡാറ്റയെ 0 മുതൽ 1 വരെയുള്ള ശ്രേണിയിലേക്ക് സ്കെയിൽ ചെയ്യുന്നു, ഇത് ഒരു സാധാരണ ചിത്ര ഡാറ്റ നോർമലൈസേഷൻ ഘട്ടമാണ്.
ഇത് മോഡലിന്റെ ഒത്തുചേരലിനെ വേഗത്തിലാക്കുകയും അതിന്റെ പ്രകടനം വർദ്ധിപ്പിക്കുകയും ചെയ്യും.
X_train = X_train / 255.0
X_test = X_test / 255.0
മോഡ് സൃഷ്ടിക്കുന്നു
ഒരു ചിത്രത്തിൽ മുഖം ദൃശ്യമാകുന്ന വ്യക്തിയെ തിരിച്ചറിയാൻ ഞങ്ങൾ ആഗ്രഹിക്കുന്നു. ഈ സാഹചര്യത്തിൽ, ഞങ്ങൾ പൂർണ്ണമായി ബന്ധിപ്പിച്ച നെറ്റ്വർക്ക് ഉപയോഗിക്കും, ഇത് പലപ്പോഴും സാന്ദ്രമായ നെറ്റ്വർക്ക് എന്നറിയപ്പെടുന്നു. ഇത് ഒരു കൃത്രിമ ന്യൂറൽ നെറ്റ്വർക്കാണ്, അത് മോഡൽ സൃഷ്ടിക്കാൻ ഉപയോഗിച്ചു.
മനുഷ്യ മസ്തിഷ്കം എങ്ങനെ പ്രവർത്തിക്കുന്നു എന്നതിനെ അടിസ്ഥാനമാക്കിയാണ് കൃത്രിമ ന്യൂറൽ നെറ്റ്വർക്കുകൾ രൂപപ്പെടുത്തിയിരിക്കുന്നത്. അവ ബന്ധിപ്പിച്ചിരിക്കുന്ന വിവര-സംസ്കരണ നോഡുകളോ ന്യൂറോണുകളോ കൊണ്ടാണ് നിർമ്മിച്ചിരിക്കുന്നത്. സാന്ദ്രമായ ഒരു ശൃംഖലയിലെ ഒരു ലെയറിലെ ഓരോ ന്യൂറോണും അതിന് മുകളിലുള്ള പാളിയിലെ എല്ലാ ന്യൂറോണുകളുമായും ബന്ധപ്പെട്ടിരിക്കുന്നു.
ഈ കോഡിൽ മോഡലിന് നാല് പാളികളുണ്ട്. അടുത്ത ലെയറിലേക്ക് നൽകുന്നതിന്, ഇൻപുട്ട് ഡാറ്റ ആദ്യ ലെയറിൽ ഒരു ഏകമാന ശ്രേണിയിലേക്ക് പരന്നതാണ്. ഇനിപ്പറയുന്ന രണ്ട് പാളികളിലെ 128, 64 ന്യൂറോണുകൾ, അതനുസരിച്ച്, പൂർണ്ണമായും ബന്ധിപ്പിച്ചിരിക്കുന്നു.
ഈ ലെയറുകൾ ഉപയോഗിക്കുന്ന ഒരു അദ്വിതീയ ആക്ടിവേഷൻ ഫംഗ്ഷനാണ് ReLU ആക്ടിവേഷൻ ഫംഗ്ഷൻ. അത് ഉപയോഗിച്ച്, ഇൻപുട്ടുകളും ഔട്ട്പുട്ടുകളും തമ്മിലുള്ള നോൺ-ലീനിയർ കോറിലേഷനുകൾ പഠിക്കാനുള്ള മോഡൽ നമുക്ക് ലഭിക്കും. പ്രവചനങ്ങൾ നടത്താൻ അവസാന ലെയർ സോഫ്റ്റ്മാക്സ് ആക്ടിവേഷൻ ഫംഗ്ഷൻ ഉപയോഗിക്കുന്നു. കൂടാതെ, സാധ്യമായ ക്ലാസുകൾ ഉള്ളത്ര ന്യൂറോണുകളുള്ള പൂർണ്ണമായി ബന്ധിപ്പിച്ച പാളിയാണിത്.
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')
])
മോഡലിന്റെ സമാഹാരം
"കംപൈൽ" ഫംഗ്ഷൻ ഉപയോഗിച്ചാണ് മോഡൽ കംപൈൽ ചെയ്യുന്നത്. പരിശീലനത്തിനുള്ള മാതൃക ഞങ്ങൾ തയ്യാറാക്കേണ്ടതുണ്ട്. അതിനാൽ, മോഡൽ വിലയിരുത്താൻ ഉപയോഗിക്കുന്ന ഒപ്റ്റിമൈസർ, ലോസ് ഫംഗ്ഷൻ, മെട്രിക്സ് എന്നിവ ഞങ്ങൾ നിർവ്വചിക്കും.
പരിശീലന സമയത്ത്, മോഡലിന്റെ പാരാമീറ്ററുകൾ മാറ്റുന്നതിനുള്ള ചുമതല ഒപ്റ്റിമൈസർക്കാണ്. "ആദം" ഒപ്റ്റിമൈസർ ഒരു ജനപ്രിയ ആഴത്തിലുള്ള പഠന ഒപ്റ്റിമൈസേഷൻ സാങ്കേതികതയാണ്.
പരിശീലന ഡാറ്റയിലെ മോഡലിന്റെ പ്രകടനം വിലയിരുത്താൻ ഞങ്ങൾ ലോസ് ഫംഗ്ഷൻ ഉപയോഗിക്കുന്നു. ടാർഗെറ്റ് ലേബലുകൾ ഒറ്റ-ഹോട്ട് എൻകോഡ് ചെയ്ത വെക്റ്ററുകളേക്കാൾ ചിത്രത്തിന്റെ ക്ലാസിനെ പ്രതിഫലിപ്പിക്കുന്ന പൂർണ്ണസംഖ്യകളായതിനാൽ, "സ്പാർസ് കാറ്റഗറിക്കൽ ക്രോസ്സെൻട്രോപ്പി" ലോസ് ഫംഗ്ഷൻ അനുകൂലമാണ്.
അവസാനമായി, മോഡൽ വിലയിരുത്തുന്നതിനുള്ള അളവുകൾ ഞങ്ങൾ നിർവ്വചിക്കുന്നു, ഈ സാഹചര്യത്തിൽ, "കൃത്യത".
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
മാതൃകാ പരിശീലനം
മോഡലിനെ പരിശീലിപ്പിക്കാൻ ഞങ്ങൾ "ഫിറ്റ്" ഫംഗ്ഷൻ ഉപയോഗിക്കും.
ഞങ്ങൾ പരിശീലന ഡാറ്റയും (എക്സ് ട്രെയിൻ) അനുബന്ധ ലേബലുകളും (വൈ ട്രെയിൻ) നൽകും, അതുപോലെ തന്നെ യുഗങ്ങളുടെ എണ്ണം (ആവർത്തനങ്ങൾ) 10 ആയി സജ്ജീകരിക്കും. പരിശീലന നടപടിക്രമം ഒരു നഷ്ടം കുറയ്ക്കുന്നതിന് മോഡൽ ഭാരം പരിഷ്കരിക്കുന്നു (തമ്മിലുള്ള വ്യത്യാസം പ്രവചിച്ചതും യഥാർത്ഥവുമായ ലേബലുകൾ) പരിശീലന ഡാറ്റയുടെ കൃത്യത മെച്ചപ്പെടുത്തുക.
model.fit(X_train, y_train, epochs=10)
മോഡൽ വിലയിരുത്തൽ
ഇപ്പോൾ, ടെസ്റ്റ് ഡാറ്റയിൽ പരിശീലനം ലഭിച്ച മോഡൽ നമുക്ക് വിലയിരുത്തേണ്ടതുണ്ട്. മോഡലിന്റെ പ്രകടനം വിലയിരുത്താൻ ഞങ്ങൾ ടെസ്റ്റ് നഷ്ടവും ടെസ്റ്റ് കൃത്യതയും ഉപയോഗിക്കുന്നു. ടെസ്റ്റ് ഡാറ്റ X ടെസ്റ്റ്, ടെസ്റ്റ് ലേബലുകൾ y ടെസ്റ്റ് എന്നിവയിൽ, നമ്മൾ "the model.evaluate function" എന്ന് വിളിക്കേണ്ടതുണ്ട്.
ഫംഗ്ഷൻ ടെസ്റ്റ് കൃത്യതയും ടെസ്റ്റ് നഷ്ടവും ഔട്ട്പുട്ട് ചെയ്യുന്നു. വേരിയബിളുകളിൽ യഥാക്രമം നഷ്ടവും പരിശോധന കൃത്യതയും ഈ മൂല്യങ്ങൾ ഉൾക്കൊള്ളുന്നു. അവസാനമായി, ടെസ്റ്റ് കൃത്യത ഔട്ട്പുട്ട് ചെയ്യുന്നതിന് ഞങ്ങൾ "പ്രിന്റ്" ഫംഗ്ഷൻ ഉപയോഗിക്കുന്നു.
test_loss, test_accuracy = model.evaluate(X_test, y_test)
print("Test accuracy:", test_accuracy)
ക്ലാസുകൾ പ്രവചിക്കുകയും പ്രവചിച്ച ക്ലാസുകൾ നേടുകയും ചെയ്യുക
പരിശീലന മാതൃകയും ടെസ്റ്റ് ഡാറ്റയും ഉപയോഗിച്ച് അൽഗോരിതം പ്രവചനങ്ങൾ നടത്തുന്നു. ടെസ്റ്റ് ഡാറ്റ "model.predict" രീതിയിലേക്ക് കൈമാറുമ്പോൾ, അത് ടെസ്റ്റ് സെറ്റിലെ ഓരോ ചിത്രത്തിനും പ്രവചനങ്ങളുടെ ഒരു നിര നൽകുന്നു.
ഓരോ ചിത്രത്തിനും വേണ്ടിയുള്ള ടാർഗെറ്റ് ക്ലാസ് നാമം "ടാർഗെറ്റ് നെയിംസ്" ലിസ്റ്റിൽ നിന്ന് "np.argmax" ഫംഗ്ഷൻ ഉപയോഗിച്ച്, പ്രവചിക്കപ്പെട്ട ഏറ്റവും വലിയ പ്രോബബിലിറ്റി ഉള്ള സൂചികയെ തിരിച്ചറിയുന്നു. ഓരോ ചിത്രത്തിനും പ്രവചിച്ച ക്ലാസ് നിർണ്ണയിക്കാൻ ഈ സൂചിക ഉപയോഗിക്കുന്നു.
ഒരു ലിസ്റ്റ് കോംപ്രഹെൻഷൻ ഉപയോഗിച്ച്, "പ്രവചനങ്ങൾ" ശ്രേണിയിലെ എല്ലാ പ്രവചനങ്ങളും ഈ രീതിക്ക് വിധേയമാക്കുന്നു, അതിന്റെ ഫലമായി "പ്രവചിച്ച ക്ലാസുകൾ" ലിസ്റ്റ് ലഭിക്കും.
predictions = model.predict(X_test)
predicted_classes = [target_names[np.argmax(prediction)] for prediction in predictions]
പ്രവചനങ്ങൾ ദൃശ്യവൽക്കരിക്കുന്നു
ഞങ്ങളുടെ മോഡൽ എങ്ങനെയുണ്ടെന്ന് ഇപ്പോൾ നമുക്ക് കാണാൻ കഴിയും.
മോഡൽ എത്ര നന്നായി പ്രവർത്തിക്കുന്നുവെന്ന് വിലയിരുത്തുന്നതിന്, ആദ്യത്തെ 10 ഫോട്ടോകളും അവയുടെ പ്രവചനങ്ങളും കാണിക്കും. ഇത് ഫോട്ടോകൾ ഗ്രേസ്കെയിലിൽ പ്ലോട്ട് ചെയ്യുകയും matplotlib.pyplot മൊഡ്യൂൾ ഉപയോഗിച്ച് ചിത്രത്തിന്റെ യഥാർത്ഥ ക്ലാസും മോഡൽ പ്രവചിച്ച ക്ലാസും പ്രദർശിപ്പിക്കുകയും ചെയ്യും.
ആദ്യ 10 ടെസ്റ്റ് സെറ്റ് ഫോട്ടോകളിൽ ഓരോന്നും പ്ലോട്ട് ചെയ്യാൻ ഫോർ ലൂപ്പ് "imshow" ഫംഗ്ഷൻ ഉപയോഗിക്കുന്നു. ചിത്രത്തിന്റെ യഥാർത്ഥ ക്ലാസും പ്രവചിക്കപ്പെട്ട ക്ലാസും യഥാക്രമം നിർണ്ണയിക്കാൻ ടാർഗെറ്റ് പേരുകൾ[y ടെസ്റ്റ്[i]] ഉം പ്രവചിച്ച ക്ലാസുകളും[i] ഉപയോഗിക്കുന്നു. ഓരോ പ്ലോട്ടിന്റെയും ശീർഷകങ്ങൾ ഈ വർഗ്ഗീകരണങ്ങളാൽ സൂചിപ്പിക്കപ്പെടുന്നു.
അവസാനമായി, 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()
അവസാനിപ്പിക്കുക
മെഷീൻ ലേണിംഗ് മോഡലുകൾ സൃഷ്ടിക്കുന്നതിന് ടെൻസർഫ്ലോ പൂർണ്ണവും വഴക്കമുള്ളതുമായ അന്തരീക്ഷം വാഗ്ദാനം ചെയ്യുന്നു.
പ്രത്യേക ആവശ്യകതകൾ നിറവേറ്റുന്നതിനായി മോഡൽ നന്നായി ട്യൂൺ ചെയ്യുന്നതിലൂടെ അല്ലെങ്കിൽ മെഷീൻ ലേണിംഗിൽ പുതിയ സംഭവവികാസങ്ങൾ ചേർക്കുന്നതിലൂടെ, മോഡലിന്റെ കൃത്യത ഇനിയും വർദ്ധിപ്പിക്കാം.
ഭാവിയിൽ സുരക്ഷാ സംവിധാനങ്ങൾ, ബയോമെട്രിക് പ്രാമാണീകരണം, ആരോഗ്യ സംരക്ഷണം തുടങ്ങിയ വ്യവസായങ്ങളിൽ ടെൻസർഫ്ലോയും മുഖത്തെ തിരിച്ചറിയലും കൂടുതലായി ഉപയോഗിക്കപ്പെടാൻ സാധ്യതയുണ്ട്. കൗതുകകരമായ പുതുമകൾ ഞങ്ങൾ ഉടൻ കാണും.
നിങ്ങളുടെ അഭിപ്രായങ്ങൾ രേഖപ്പെടുത്തുക