TensorFlow د ماشین زده کړې ماډلونو رامینځته کولو لپاره یو څو اړخیزه وسیله ده.
پدې پوسټ کې ، موږ به وګورو چې څنګه د TensorFlow سره د مخ پیژندنې سیسټم رامینځته کړو ، د خلاصې سرچینې ماشین زده کړې چوکاټ. موږ به د مخ پیژندنې بریالي سیسټم رامینځته کولو لپاره اړین پروسې ته لاړ شو ، د معلوماتو راټولولو او چمتو کولو څخه نیولې د ماډل روزنې او ارزونې پورې.
تاسو به د TensorFlow سره د لومړي لاس تجربه ترلاسه کړئ ترڅو د کوډ ټوټې او ریښتیني نړۍ مثالونو په مرسته د مخ پیژندنه رامینځته کړئ. تاسو ته ښه راغلاست ویل کیږي لکه څنګه چې موږ پرمخ ځو.
TensorFlow پیژندنه
TensorFlow یو وړیا او خلاصې سرچینې کتابتون دی. دا یو سمبولیک ریاضی وسیله بکس دی چې د ډیټا فلو او توپیر وړ برنامه کاروي. تاسو کولی شئ د دې سره یو لړ دندې ترسره کړئ، په شمول ژور نوریال شبکه روزنه.
TensorFlow ځواکمن او د تطبیق وړ دی. په ورته ډول، دا د پراختیا او پراختیا لپاره خورا ښه وسیله ده د ماشین زده کړې ماډلونه ځای په ځای کول. تاسو کولی شئ د څو پرتونو او ټینسر عملیاتو سره پیچلي ماډلونه جوړ کړئ. همچنان ، په کتابتون کې دمخه جوړ شوي ماډلونه د ځانګړو اړتیاو لپاره ښه تنظیم کیدی شي.
سربیره پردې ، TensorFlow د کارونکي پراخه او پراخه ټولنه لري. نو، د هغو کسانو لپاره چې پلیټ فارم ته نوي دي د معلوماتو او مرستې ډیری برخه شتون لري.
TensorFlow د دې لپاره مشهور دی ماشین زده کړه په برخه کې ځکه چې دا د پای څخه تر پای پورې کاري جریان چمتو کوي. نو، تاسو کولی شئ په اسانۍ سره موډلونه جوړ، روزنه او ځای په ځای کړئ. دا د ځانګړو غوښتنو سره سم د موډلونو ښه کولو او اندازه کولو لپاره وسایل او ستراتیژۍ چمتو کوي. دا د معلوماتو دمخه پروسس کولو څخه د ماډل پلي کولو پورې توپیر لري.
د مخ پیژندنه څه ده؟
د مخ پیژندنه a کمپیوټر لید هغه دنده چې د یو شخص پیژندنه د هغه د مخ په اساس پیژندل کیږي. دا تخنیک د مخ ځانګړتیاوې پیژني، لکه د سترګو، پوزې او خولې شکل او جوړښت.
او، دا د میچ پیژندلو لپاره د پیژندل شوي مخونو ډیټابیس سره پرتله کوي. د مخ پیژندنه ډیری کارونې لري ، پشمول د امنیت سیسټمونه ، د عکس تنظیم ، او بایومیټریک تصدیق.
د مخ پیژندنې الګوریتم دقت په وروستیو کلونو کې د ماشین زده کړې په برخه کې د پرمختګونو په پایله کې د پام وړ وده کړې.
د اړینو کتابتونونو واردول
د هر څه پیل کولو دمخه، موږ اړتیا لرو چې زموږ د ماډل لپاره اړین کتابتونونه وارد کړو. Tensorflow (tf) وارد شوی او د ماډل جوړولو او روزنې لپاره کارول کیږي. <(p>
"numpy" د ریاضیاتو محاسبه او د معلوماتو پروسس کوي.
"matplotlib.pyplot" د plt په توګه وارد شوی او د دې لپاره کارول کیږي د معلوماتو نقشه کول او لیدونه.
په نهایت کې ، "د lfw خلکو ترلاسه کول" له سکیرین څخه وارد شوي. ډیټاسیټونه او د مخ پیژندنې ډیټاسیټ بارولو لپاره کارول کیږي. دا فنکشن د سکيټ-لارنګ ټیکټ برخه ده. د دې فنکشن څخه مننه موږ اړتیا نه درلوده چې بل ډیټا سیټ اپلوډ کړو. دا لا دمخه په سکیټ زده کړه کې جوړ شوی.
او ، دا تاسو ته پراخه لړۍ ته لاسرسی درکوي د ماشین زده کړې لپاره ډیټاسیټونه غوښتنلیکونه په دې سناریو کې، موږ د "په ځنګل کې لیبل شوي مخونه" (LFW) ډیټاسیټ بیرته ترلاسه کولو لپاره د lfw خلکو طریقه کاروو. دا د خلکو د مخونو عکسونه او همدارنګه لیبلونه لري چې ورسره ځي.
دا کتابتونونه زموږ د مخ پیژندنې ماډل پلي کولو او ارزونې کې مهم دي.
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt from sklearn.datasets
import fetch_lfw_people
د مخ پیژندنې ډیټاسیټ دمخه پروسس کول او بار کول
پدې برخه کې، موږ د مخ پیژندنې ډیټا دمخه پروسس کولو لپاره "د lfw خلکو راوړل" فنکشن کاروو. لومړی، موږ د "منټ مخونو هر شخص = 60" اختیار سره د 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'])
د ماډل روزنه
موږ به د ماډل روزلو لپاره "فټ" فنکشن وکاروو.
موږ به د روزنې ډاټا (X ټرین) او اړوند لیبلونه (y ټرین) چمتو کړو، او همدارنګه د 10 په توګه د چلولو لپاره د وختونو شمیر (تکرارونه) ترتیب کړو. د روزنې طرزالعمل د وزن کمولو لپاره ماډل وزن بدلوي (تر منځ توپیر وړاندوینه شوي او ریښتیني لیبلونه) او د روزنې معلوماتو دقت ته وده ورکوي.
model.fit(X_train, y_train, epochs=10)
د ماډل ارزونه
اوس، موږ اړتیا لرو چې د ازموینې ډیټا کې روزل شوي ماډل ارزونه وکړو. موږ د ازموینې ضایع کاروو او د ازموینې دقت د ماډل فعالیت ارزولو لپاره کارول کیږي. د ټیسټ ډیټا X ټیسټ او د ټیسټ لیبلونو y ټیسټ کې ، موږ اړتیا لرو "موډل. ارزونه فنکشن" ته زنګ ووهو.
فنکشن د ازموینې دقت او د ازموینې له لاسه ورکوي. متغیرونه په ترتیب سره د ضایع کیدو او د ازموینې دقت ازموینه کوي، دا ارزښتونه لري. په نهایت کې ، موږ د ازموینې دقت د تولید لپاره د "چاپ" فنکشن کاروو.
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 ماډل په کارولو سره د ماډل لخوا وړاندوینه شوي ټولګي ښکاره کړي.
د "imshow" فنکشن د لوپ لخوا کارول کیږي ترڅو هر یو د لومړي 10 ټیسټ سیټ عکسونو پلاټ کړي. د هدف نومونه [y test[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()
و نغاړئ
TensorFlow د ماشین زده کړې ماډلونو رامینځته کولو لپاره بشپړ او انعطاف وړ چاپیریال وړاندې کوي.
د ځانګړو اړتیاو پوره کولو لپاره د ماډل ښه کولو سره یا د ماشین زده کړې کې د نوي پرمختګونو اضافه کولو سره، د ماډل دقت ممکن نور هم لوړ شي.
TensorFlow او د مخ پیژندنه به احتمال په راتلونکي کې په صنعتونو لکه امنیت سیسټمونو ، بایومیټریک تصدیق ، او روغتیا پاملرنې کې په زیاتیدونکي توګه وکارول شي. موږ به ډیر ژر په زړه پوري نوښتونه وګورو.
یو ځواب ورکړئ ووځي