TensorFlow مشين سکيا جا ماڊل ٺاهڻ لاءِ هڪ ورڇيل اوزار آهي.
هن پوسٽ ۾، اسان ڏسنداسين ته ڪيئن ٺاهجي منهن جي سڃاڻپ وارو نظام TensorFlow سان، هڪ اوپن سورس مشين لرننگ فريم ورڪ. اسان هڪ ڪامياب چهرو سڃاڻڻ وارو نظام ٺاهڻ ۾ ضروري عملن تي غور ڪنداسين، ڊيٽا گڏ ڪرڻ ۽ تيار ڪرڻ کان وٺي ٽريننگ ۽ ماڊل جو جائزو وٺڻ تائين.
توهان TensorFlow سان پهريون هٿ تجربو حاصل ڪندا ڪوڊ جي ٽڪڙن ۽ حقيقي دنيا جي مثالن جي مدد سان منهن جي سڃاڻپ ٺاهڻ لاءِ. توهان ڀلي ڪري آيا آهيون اسان جي پيروي ڪرڻ لاء جيئن اسان اڳتي وڌو.
TensorFlow جو تعارف
TensorFlow هڪ آزاد ۽ کليل ذريعو لائبريري آهي. اهو هڪ علامتي رياضي وارو اوزار آهي جيڪو استعمال ڪري ٿو ڊيٽا فلو ۽ مختلف پروگرامنگ. توھان ان سان گڏ ڪمن جي ھڪڙي حد کي سنڀالي سگھو ٿا، بشمول گہرا نظرياتي نيٽورڪ تربيت.
TensorFlow طاقتور ۽ قابل اطلاق آهي. ساڳئي طرح، اهو هڪ بهترين اوزار آهي ترقي ڪرڻ ۽ مشين سکيا جا ماڊل لڳائڻ. توهان ڪيترن ئي تہن ۽ ٽينسر آپريشن سان پيچيده ماڊل ٺاهي سگهو ٿا. انهي سان گڏ، لائبريري ۾ اڳ ۾ ٺهيل ماڊل مخصوص ضرورتن لاء ٺيڪ ٿي سگهن ٿيون.
ان کان علاوه، TensorFlow وٽ ھڪڙو وڏو ۽ وڌندڙ صارف ڪميونٽي آھي. تنهن ڪري، معلومات جو هڪ مجموعو آهي ۽ انهن ماڻهن لاءِ مدد آهي جيڪي پليٽ فارم تي نوان آهن.
TensorFlow لاء مشهور آهي مشين جي سکيا جزوي طور تي ڇاڪاڻ ته اهو هڪ آخر کان آخر تائين ڪم فلو مهيا ڪري ٿو. تنهن ڪري، توهان آساني سان ماڊل ٺاهي، ٽريننگ ۽ ترتيب ڏئي سگهو ٿا. اهو مخصوص مطالبن کي پورو ڪرڻ لاءِ ماڊلز کي بهتر ۽ اسڪيل ڪرڻ لاءِ اوزار ۽ حڪمت عمليون مهيا ڪري ٿو. اهو مختلف آهي ڊيٽا کان اڳ پروسيسنگ کان ماڊل جي ترتيب تائين.
منهن جي سڃاڻپ ڇا آهي؟
منهن جي سڃاڻپ آهي a ڪمپيوٽر جو نقشو اهو ڪم جيڪو هڪ شخص جي سڃاڻپ ان جي منهن جي بنياد تي ڪري ٿو. هي ٽيڪنڪ منهن جي خاصيتن کي سڃاڻي ٿو، جهڙوڪ اکين، نڪ ۽ وات جي شڪل ۽ بناوت.
۽، اهو انهن کي هڪ ميچ جي سڃاڻپ ڪرڻ لاء ڄاڻايل منهن جي ڊيٽابيس سان مقابلو ڪري ٿو. منهن جي سڃاڻپ جا ڪيترائي استعمال آهن، بشمول سيڪيورٽي سسٽم، فوٽو آرگنائيزيشن، ۽ بايوميٽرڪ تصديق.
منهن جي سڃاڻڻ واري الگورتھم جي درستگي تازو سالن ۾ مشيني سکيا ۾ پيش رفت جي نتيجي ۾ ڪافي وڌي وئي آهي.
ضروري لائبريريون درآمد ڪرڻ
ڪجھ به شروع ڪرڻ کان اڳ، اسان کي اسان جي ماڊل لاء لائبريريون درآمد ڪرڻ جي ضرورت آھي. Tensorflow (tf) درآمد ڪيو ويو ۽ استعمال ڪيو ويو ماڊل ٺاهڻ ۽ تربيت ڏيڻ لاءِ. </p>
"numpy" رياضياتي حساب ۽ ڊيٽا پروسيسنگ انجام ڏئي ٿو.
"matplotlib.pyplot" plt طور درآمد ڪيو ويو ۽ استعمال ڪيو ويو ڊيٽا چارٽنگ ۽ visualizations.
آخرڪار، "lfw lfw people" کي sklearn مان درآمد ڪيو ويو آهي. ڊيٽا سيٽ ۽ چهري جي سڃاڻپ واري ڊيٽا سيٽ کي لوڊ ڪرڻ لاءِ استعمال ڪيو ويو. هي فنڪشن اسڪيٽ-لرن ٽول ڪٽ جو حصو آهي. هن فنڪشن جي مهرباني، اسان کي ٻيو ڊيٽا سيٽ اپ لوڊ ڪرڻ جي ضرورت نه هئي. اهو اڳ ۾ ئي ٺهيل آهي sckit-learn.
۽، اهو توهان کي وسيع رينج تائين رسائي ڏئي ٿو مشين سکيا لاء ڊيٽا سيٽ ايپليڪيشنون. هن منظرنامي ۾، اسان استعمال ڪريون ٿا lfw ماڻهن جو طريقو حاصل ڪرڻ لاءِ “ليبل ٿيل چهرا ان دي وائلڊ” (LFW) ڊيٽا سيٽ کي ٻيهر حاصل ڪرڻ لاءِ. اهو ماڻهن جي منهن جي تصويرن تي مشتمل آهي ۽ انهي سان گڏ ليبل جيڪي انهن سان گڏ هجن.
اهي لائبريريون اسان جي منهن جي سڃاڻپ واري ماڊل جي عمل درآمد ۽ تشخيص ۾ اهم آهن.
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt from sklearn.datasets
import fetch_lfw_people
منهن جي سڃاڻڻ واري ڊيٽا سيٽ کي پري پروسيسنگ ۽ لوڊ ڪرڻ
هن حصي ۾، اسان استعمال ڪريون ٿا "ftch lfw people" فنڪشن کي اڳڀرائي ڪرڻ لاءِ چهري جي سڃاڻپ واري ڊيٽا کي. پهرين، اسان استعمال ڪريون ٿا lfw ماڻهن کي "min faces per person=60" اختيار سان. اهو ظاهر ڪري ٿو ته اسان صرف انهن ماڻهن کي ڊيٽا سيٽ ۾ شامل ڪرڻ چاهيون ٿا جن وٽ گهٽ ۾ گهٽ 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٪ ٽريننگ سيٽ طور. ان کان علاوه، اسان استعمال ڪندا آهيون random state=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 ايڪٽيويشن فنڪشن هڪ منفرد ايڪٽيوشن فنڪشن آهي جيڪو انهن پرتن پاران استعمال ڪيو ويندو آهي. ان سان گڏ، اسان ان پٽ ۽ آئوٽ پُٽ جي وچ ۾ غير لڪير لاڳاپن کي سکڻ لاءِ ماڊل حاصل ڪري سگھون ٿا. آخري پرت اڳڪٿيون ڪرڻ لاءِ softmax ايڪٽيوشن فنڪشن کي ملازمت ڏئي ٿي. ۽، اهو هڪ مڪمل طور تي ڳنڍيل پرت آهي جيئن ته ڪيترن ئي نيورسن سان گڏ امڪاني ڪلاس آهن.
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 جي طور تي هلائڻ لاء epochs (Iterations) جو تعداد مقرر ڪندي. پيش ڪيل ۽ حقيقي ليبلز) ۽ ٽريننگ ڊيٽا جي درستگي کي بهتر بنائڻ.
model.fit(X_train, y_train, epochs=10)
ماڊل جي تشخيص
هاڻي، اسان کي ٽيسٽ ڊيٽا تي تربيتي ماڊل جو جائزو وٺڻ جي ضرورت آهي. اسان استعمال ڪريون ٿا ٽيسٽ نقصان ۽ ٽيسٽ جي درستگي استعمال ڪئي ويندي ماڊل جي ڪارڪردگي جو جائزو وٺڻ لاءِ. ٽيسٽ ڊيٽا تي X ٽيسٽ ۽ ٽيسٽ ليبلز y ٽيسٽ، اسان کي سڏڻ جي ضرورت آهي "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 ماڊل استعمال ڪندي ماڊل پاران پيش ڪيل ڪلاس.
"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 ۽ منهن جي سڃاڻپ ممڪن طور تي صنعتن جهڙوڪ سيڪيورٽي سسٽم، بايو ميٽرڪ تصديق، ۽ مستقبل ۾ صحت جي سار سنڀار ۾ استعمال ڪيو ويندو. اسان جلد ئي دلچسپ جدت ڏسي سگهنداسين.
جواب ڇڏي وڃو