القائمة الرئيسية

الصفحات

التعلم العميق وإستخداماته في الرؤية الحاسوبية - الجزء الرابع

 

التعلم العميق وإستخداماته في الرؤية الحاسوبية - الجزء الرابع
سوف نقوم في هذا الجزء إن شاء ألله بإنشاء وتنفيذ بعض التطبيقات الخاصة بالشبكات العصبية الإصطناعية بإستخدام مكتبات خاصة لتعليم الآلة مثل مكتبة TensorFlow وكذلك مكتبة keras .وقبل الشروع بهذا العمل يكون من المفيد أن نتعرف على ماهية هذه المكتبات المهمة وبعض من إمكانياتها والتي ممكن أن نستفيد منها ونسخرها لمتطلبات تطبيقاتنا. سوف نبدأ أولاً بالمكتبة TensorFlow.


التعلم العميق وأستخداماته في الرؤية الحاسوبية - الجزء الرابع

Deep Learning For Computer Vision-Part 4








بسم إلله الرحمن الرحيم
سوف نقوم في هذا الجزء إن شاء ألله بإنشاء وتنفيذ بعض التطبيقات الخاصة بالشبكات العصبية الإصطناعية بإستخدام مكتبات خاصة لتعليم الآلة مثل مكتبة TensorFlow وكذلك مكتبة keras .وقبل الشروع بهذا العمل يكون من المفيد أن نتعرف على ماهية هذه المكتبات المهمة وبعض من إمكانياتها والتي ممكن أن نستفيد منها ونسخرها لمتطلبات تطبيقاتنا. سوف نبدأ أولاً بالمكتبة TensorFlow.

عرض موجز عن مكتبة  TensorFlow:

هي مكتبة من الأكواد الجاهزة قامت بتطويرها شركة Google للإستفادة منها في إنشاء وتدريب نماذج في مجال تدريب الآلة (Machine Learning وحيث إنَّ الشبكات العصبية هي قسم من أقسام ال ML فلذلك تشملها هذه الفائدة, وتم إصدار هذه المكتبة لأول مرة عام 2015  لكنها كانت خاصة لإستخدامات شركة غوغل فقط, ثم أصبحت مفتوحة المصدر سنة 2017.  إنَّ هذه المكتبة قد كتبت في الأساس بلغة C++ ولكن توجد نسخة بلغة بايثون.
من مزايا هذه المكتبة هي التعامل مع العمليات الحسابية على أنها مخططات إنسيابية (flowcharts) إثناء عملية التنفيذ, وبالتالي فإنَّ عملية تنفيذ التطبيقات لا تكون محصورة على المعالجات ذوات المقدرة العالية, وإنما يمكن تنفيذها حتى على الأجهزة المحمولة ذوات الإمكانيات القليلة.تتم بعض العمليات الحسابية في هذه المكتبة بشكل متوازي وهذا مايقلل الوقت الخاص بالمعالجات الحسابية (Computation Time).
هناك خاصية أخرى مهمة تمتلكها هذه المكتبة وهي خاصية الإشتقاق التلقائي للدوال (automatic differentiation) والتي نستفاد منها كثيراً في عملية النشر الخلفي (back-propagation) في تطبيقاتنا.
وأيضاً هناك خاصية أخرى لهذه المكتبة وهي إحتوائها على أداة مهمة تسمى (TensorBoard) والتي توفر لنا مايسمى بيئة التصور التفاعلي (interactive visualization environment), حيث تعرض هذه الأداة المخطط الإنسيابي للطريقة التي تحول بها البيانات, وكذلك تعرض سجلات الملخص على مدار الوقت وتتبع الأداء للشبكة.
الشكل رقم (1) يمثل طريقة تعامل مكتبة TensorFlow مع البيانات حيث تقوم بتمثيل هذه البيانات على شكل مخطط إنسيابي (flowchart).

                                                  الشكل رقم (1).

في الشكل رقم (1) نلاحظ أنَّ الأسهم (edges ) تمثل تدفق البيانات والتي عادةً ماتكون على شكل مصفوفات متعددة الأبعاد أو (tensors), وتمثل العُقد (nodes ) العمليات الحسابية التي تجرى على هذه البيانات.وبهذا التمثيل يعبر عن البيانات بأنها سيل من التينسورات ومن هنا تمت تسمية هذه المكتبة بهذا الإسم (TensorFlow).

الشكل رقم (2) يبين بعض ماتظهره لنا أداة ال TensorBoard.

ماهو التينسر What is the Tensor ?:

لأجل فهم ماهو التينسر من الضروري أن يكون لدينا بعض الإلمام بالجبر الخطي (Linear Algebra) وخصوصاً في المصفوفات (Matrices) والمتجهات (Vectors), حيث إنَّ ال (Tensor) هو عبارة عن مصفوفة من البيانات متعددة الأبعاد.


إنَّ التينسورات تكون على أنواع , فإن كانت عبارة عن بيانات بدون أبعاد (مصفوفة ذات بعد صفر) تسمى (scalar) وأما إذا كانت بيانات ذات بعد واحد تسمى (Vector), حيث إن المتجه هو عبارة عن مصفوفة (Matrix)  ذات بعد واحد, وبما أنَّ المتجه عبارة عن مجموعة من الأرقام مرتبة لذلك غالباً ماتعتبر مصفوفة ذات عمود واحد (column matrix) ومجموعة صفوف.
مثال على ال (scalar) هو إننا بعض الأحيان نصف سرعة السيارة مثلاً ب (60 متر في الثانية), أما إذا وصفنا السرعة ب (60 متر في الثانية شرقاً أو شمالاً) فهذا يمثل متجه (Vector).فالفرق بينهما غنَّ أحدهما له إتجاه دون الآخر.

تنصيب مكتبة TensorFlow.

أفضل طريقة مجربة لتنصيب هذه المكتبة هي كالآتي:

1 - نقوم بتنصيب برنامج Anaconda حيث نقوم بتحميل البرنامج من الموقع الرسمي:

(https://www.anaconda.com/  ) حيث نختار (Anaconda Distribution) ثم (windows) أو أي نظام تشغيل آخر  ثم نختار (Python 3.7 version).

ملاحظة: إنَّ عملية التنصيب تأخذ بعض الوقت لأن هذا البرنامج يحتوي على حزمة كبيرة جداً من المكتبات

المفيدة.

2 – نقوم بإنشاء بيئة جديدة خاصة بمتطلباتنا لأن البيئة الأصلية التي تسمى (base) تحتوي على عدد كبير جداً من المكتبات لسنا بحاجة إلى أغلبها, وكذلك نلجأ إلى إنشاء البيئة الجديدة لكي لاتتضرر البيئة الأصلية عند حدوث سوء إستخدام من قبلنا, كذلك تفيد في حالة وجود أكثر من مستخدم للحاسوب.

هناك طريقتان لإنشاء بيئة جديدة هما:

الطريقة الأولى

نقوم بتشغيل سطر الأوامر الخاص بهذا البرنامج أي (Anaconda Prompt). ثم نكتب أمر إنشاء بيئة جديدة وكما موضح في الشكل رقم (3) أدناه:

شكل رقم (3).

علماً إنَّ (alfa) هنا إسم للبيئة الجديدة تستطيع إستبداله بأي إسم تختاره.

بعد تنفيذ هذا الأمر تبدأ عملية إنشاء البيئة الجديدة (alfa) وتبدأ عملية تحميل وتنصيب برنامج بايثون (Python Interpreter), وكذلك تنصيب مكتبات مهمة بما فيها مكتبة (Tensorflow), وقد إخترنا في الأمر أعلاه مكتبة (Tensorflow) نوع (CPU) ويمكن تغيير هذه العبارة إلى (tensorflow-gpu) لمن يمتلك حاسوب مجهز بلوحة شاشة نوع (NVIDIA) مخصص للألعاب عالية المستوى.

بعد إتمام العملية بنجاح ننتقل إلى البيئة الجديدة عن طريق  كتابة الأمر التالي:


وللتأكد من تنصيب مكتبة (tensorflow) نقوم  بكتابة كلمة (python) وكما في الصورة أدناه:


بعدها نقوم بكتابة الأمر التالي:

وأخيراً نكتب الأمر التالي وننفذه فنحصل على مايلي:

الطريقة الثانية

نقوم بتشغيل واجهة البرنامج والتي تسمى (Anaconda Navigator).

بعد أن يكتمل تشغيل Anaconda Navigator نقوم بالضغط على أيقونة ال Environments فتظهر لنا الواجهة التالية كما في الشكل رقم (4):

شكل رقم (4).

بعد أن نضغط على زر (create) يظهر لنا مستطيل كما في الشكل رقم (5) التالي:

شكل رقم (5).

بعد أن نقوم بالضغط على الزر (create) سوف يقوم البرنامج بإنشاء البيئة الجديدة ويقوم بتحميل الأدوات والمكتبات الضرورية.وبعد أن تكتمل عملية التحميل نشاهد تحت خانة (installed)  مجموعة من البرامج والأدوات من ضمنها مثلاً (python 3.76)  وكذلك أداة (pip) الضرورية بعمليات التنصيب التي يتم الإيعاز لها من خلال سطر الأوامر (cmd).

3 - إضافة بعض المكتبات الضرورية:

    يتم ذلك من خلال الذهاب إلى خانة (installed) وتغييرها إلى (Not installed) , حيث تظهر لنا عدد كبير من المكتبات المتاحة من ضمنها مكتبة (TensorFlow), وطريقة إختيار أي مكتبة لأجل إضافتها هو بالذهاب الى حقل (Search Packages)  وكتابة جزء من إسم المكتبة المطلوبة وسوف يظهر لنا إسم المكتبة مع مكتبات أخرى, فما علينا إلاّ إختيار المكتبة المطلوبة  ثم نضغط على الزر الأخضر (Apply), فيظهر لنا مربع وبعد فترة تظهر في هذا المربع الحزمة الكاملة لهذه المكتبة, نضغط على زر (Apply) الموجود في هذا المربع وكما في الشكل (6) حيث إخترنا مكتبة (tensorflow).

ننتظر بعض الوقت حتى تتم العملية بإضافة هذه المكتبة ومتعلقاتها, ثم نكرر العملية إلى أن نقوم بإضافة المكتبات الضرورية في عملنا مثل مكتبة (matplotlab)  أو مكتبة (opencv) أو (scikit-image) أو (scikit-learn) وغير ذلك من المكتبات.

شكل رقم (6).

نقوم بعدها بعملية تنصيب للبرنامجين (jupyter) و (spyder) كمنصتي عمل مهمتين في كتابة الأكواد الخاصة بتطبيقاتنا وتنفيذها. حيث إنَّ عملية تنصيبهما تتم أيضاً عبر واجهة البيئة الجديدة التي أنشأناها.

نقوم بالضغط على زر (Home) الموجود في أعلى اليسار من الواجهة, بعدها نقوم بعملية التنصيب لكل واحد من البرنامجين وذلك بالضغط على زر (install) وكما موضح في الشكل (7) أدناه:

شكل رقم (7).

4 -  تأسيس مسار خاص بالبايثون في المسار الرئيسي للحاسوب وحسب الخطوتين التاليتين:

    a - التعرف على مسار البيئة الجديدة التي قمنا بإنشاءها لأجل نسخ هذا المسار وإضافته في المكان المطلوب في المسار الرئيسي للحاسوب لاحقاً.ولأجل إكتشاف هذا المسار نضع الماوس على البيئة الجديدة التي قمنا بإنشاءها وسوف يظهر لنا بوضوح, وكما في الشكل (8) أدناه:

شكل رقم (8).


ملاحظةهذا المسار من الممكن أن يتغير من حاسوب إلى آخر.

b – الذهاب الى المسار الرئيسي للحاسوب وذلك بكتابة كلمة (env) في البحث في نظام الويندوز. حيث يظهر مربع (System properties) حيث نضغط على (Environment Variables), فإذا ظهر المربع الجديد نذهب إلى الأزرار السفلى ونضغط على زر (New) فيظهر لنا مستطيل نكتب في الحقل الأول إسم المسار الخاص بالبايثون وليكن (PYTHON_PATH) مثلاً, ونكتب في الحقل الأسفل المسار الخاص بالبيئة الجديدة, ثم نضغط زر (ok) وكما موضح في الشكل (9) أدناه:

شكل رقم (9).

بعدها نؤشر على سطر (path)  في المجموعة السفلى أيضاً ونضغط على زر (Edit)  فيظهر لنا مربع

جديد هو (Edit environment variable) حيث نضغط على الزر (New) ونكتب في الحقل الجديد عبارة (%PYTHON_PATH%كما الشكل (10) أدناه:

شكل رقم (10).

ثم نقوم بالضغط على الزر (ok), ثم (ok) ثم (ok) ثالثة , وبهذا نكون قد إنتهينا من إضافة مسار البايثون إلى مسارات الحاسوب الرئيسية.

من المفيد جداً أن نقوم بإضافة مسار المجلد (Scripts) الذي توجد فيه الأداة (pip), وكذلك مسار المجلد الذي توجد فيه الأداة (tensorboard) وهو (site-packages) والذي هو موجود في المجلد (Lib).ويتم ذلك عن طريق الذهاب الى المسار الرئيسي للحاسوب (Environment Variables) ونقوم بتأشير مسار البايثون الذي قمنا بإنشائه ونضغط زر ال (Edit) فيظهر لنا مربع نقوم بالضغط على (New) ونضيف المسار الأول ثم (New) مرة أخرى ونضيف المسار الثاني ثم (Ok).

5 -  إضافة مسار البايثون إلى بيئة العمل :

    لقد إخترنا برنامج (PyCharm) ليشكل بيئة العمل التي سوف نقوم من خلالها بإنشاء وتنفيذ تطبيقاتنا الحالية والقادمة إن شاء ألله.

قمنا أولاً بتنصيب برنامج (PyCharm) حيث إخترنا النسخة (COMMUNITY 2019.1) وبعد إكتمال التنصيب قمنا بإنشاء مشروع, ولأجل إضافة مسار البايثون الذي قمنا بتنصيبه من خلال برنامج (Anaconda) وبالتحديد البيئة الجديدة التي أنشأناها نقوم بمايلي:

    نذهب الى (File) نختار (Settings), ثم نضغط على إسم المشروع الذي أنشأناه ثم (Project Interpreter),

ثم نضغط على الزر الموجود في يمين الجهة العلوية وسوف يظهر لنا إختياران هما (Add & Show All) نختار الثاني (Add) وكما موضح في الشكل (11) التالي:

شكل رقم (11).

فتظهر لنا واجهة جديدة. نقوم بما يلزم كما موضح بالشكلين (12) و (13) التاليين:

شكل رقم (12).

علماً إنَّ البيئة الجديدة التي انشأناها قد توجد في المسار التالي:

(C:\Users\user-name\Anaconda3\envs\alfa\python.exe)

وأخيراً نضغط (Ok) فتظهر لنا جميع المكتبات التي أضفناها في بيئة (Anaconda) الجديدة, وكما موضح بالشكل (14) أدناه:

شكل رقم (14).

ثم نضغط (Ok) فتتم عملية إضافة مفسر (Python) وكذلك جميع المكتبات التي إضفناها من بيئة (Anaconda) إلى بيئة (PyCharm).

ملاحظة:

إذا أردنا إضافة مكتبة جديدة فيمكننا الذهاب إلى بيئة (Anaconda) الجديدة وإضافة المكتبة من هناك, وكذلك يمكننا إضافتها من بيئة (PyCharm) عن طريق الواجهة الموجودة في الشكل (14), ولكن أنا أفضل الطريقة الأولى لأنها مجربة وتعتبر حلاً لكل مشاكل التنصيب والإضافة للمكتبات, كذلك يمكن الإستفادة منها في بيئات عمل أخرى مثل (Spyder) و (Jupyter) و (Eclipse).


            التعرف على مكتبة (TensorFlow) من خلال أمثلة:

قبل البدء بإنشاء وتنفيذ تطبيقاتنا على الشبكات العصبية الإصطناعية بإستخدام مكتبة (TensorFlow), سنقوم بكتابة وتنفيذ بعض الأكواد التي نتعرف من خلالها على بعض ماتحتويه هذه المكتبة من دوال وغير ذلك من الإمكانيات المتوفرة فيها.

المثال الأول:

في هذا المثال نقوم بتعريف ثابت (constant) وطباعته.  والقيمة الثابتة ممكن أن تكون رقم أو حرف أو عبارة. نتعلم في هذا المثال كيفية تعريف وطباعة عبارة. الشكل (15) يوضح الكود المطلوب لتعريف وطباعة عبارة.
                                     شكل رقم (15).

شرح الكود:

السطر رقم (1): إستدعاء مكتبة (TensorFlow).

السطر رقم (3): الإعلان عن ثابت وسميناه (name) عن طريق إستدعاء الدالة (constant) وإعطائها الثابت   المطلوب وهنا هو عبارة عن إسم مع ملاحظة إننا وضعناه داخل علامتي تنصيص بإعتباره نص.

السطر رقم (4): إستخدمنا الدالة (print) العائدة إلى مكتبة (Tensorflow) لإظهار النص, وهي تختلف عن دالة (print) العائدة إلى لغة (Python).

المثال الثاني:

في هذا المثال نقوم بتعريف ثابتين عبارة عن متجهين (Two vectors), ثم نقوم بإجراء عملية جمع لهما ثم طباعة الناتج, وقد قمنا بإنشاء دالة سميناها (my_function) تقوم بعملية الجمع لهذين المتجهين ثم تقوم بطباعة النتيجة. وقد سبقنا كتابة الدالة بعبارة (@tf.function) لأجل تحويل العمليات الحسابية (Operations) إلى رسوم (Graphs) حيث تكون أسرع في التنفيذ. والكود الخاص بهذا المثال موضح في الشكل رقم (16) أدناه:

                                  الشكل رقم (16).

شرح الكود:

السطران (1) و (2): للإعلان عن متجهين من نوع (Tensor) هما (tensor1 and tensor2).

السطر رقم (3): هذه العبارة ضرورية قبل كتابة أي دالة تستخدم عمليات (Operations) لتحويلها إلى رسوم

(Graphs)  لأجل التسريع بالحسابات (Computations).

الأسطر من (4) لغاية (7): لإنشاء الدالة التي تقوم بعملية جمع المتجهين ووضعهما في متجه جديد ثم عرض هذا المتجه الجديد (tensor).

السطر رقم (9): إستدعاء الدالة (my_function) وتمرير المتجهان المراد جمعهما وعرض نتيجة الجمع.



المثال الثالث:
     في هذا المثال نتعرف على كيفية الإعلان عن المتغيرات في مكتبة (TensorFlow) وكذلك طباعتها.

إنَّ المتغيرات في مكتبة (TensorFlow) تعتبر أفضل طريقة لتمثيل الحالة المستدامة والمشتركة للعناصر في البرنامج والتي يمكن تحديثها خلال عملية التدريب. وللإعلان عن المتغير نستخدم الكلاس (tf.Variable).

وتستخدم هذا النوع من المتغيرات لعناصر النموذج الخاضعة للتحديث إثناء عملية التدريب مثل الأوزان (Weights) وكذلك قيم الإنحياز (Biases).

 والشكل رقم (17) التالي يبين الكود لهذا المثال:

                            شكل رقم (17).

شرح الكود:

السطر رقم (3): للإعلان عن مصفوفة (my_variable) ذات ثلاثة أبعاد تحتوي على صفوف عدد (2) وأعمدة عدد (3) وعمق (deepth) عدد (1), وإنَّ جميع قيم عناصرها هو (0).

السطر رقم (2): إستدعاء الدالة (tf.print) لأجل عرض المتغير.



المثال الرابع:

في هذا المثال نقوم بالتعرف على العلاقة بين مكتبة (tensorflow) ومكتبة (numpy) حيث نقوم بتحويل  بيانات على شكل مصفوفة نوع (numpy) الى (tensor)  من خلال الدالة (convert_to_tensor()), حيث نقوم أولاً بالإعلان عن مصفوفة نوع (numpy) عن طريق الدالة (np.array) بعدها نقوم بتحويلها إلى مصفوفة من نوع (Tensorflow).والكود موضح بالشكل رقم (18) أدناه:

                           شكل رقم (18).

وبعد أن تعرفنا بشكل موجز عن بعض إمكانيات مكتبة (tensorflow), دعونا نشرع الآن بإنشاء شبكة عصبية إصطناعية (ANN) بإستخدام هذه المكتبة.


إنشاء شبكة (ANNتقوم مقام البوابة المنطقية (EXCLUSIVE_OR)

نقوم بإنشاء شبكة (ANN) تتكون من ثلاث طبقات (3 layers) حيث تتكون الطبقة المخفية (hidden layer)

 من خمسة نيورونات, وطبقة الإخراج من نيورون واحد وكما موضحة في الشكل (19) أدناه:
                                          الشكل رقم (19).
والشكل التالي يوضح جزء من الكود لهذا التطبيق:
شرح الكود:

السطران رقم (1) و (2): لإستدعاء المكتبتان (Tensorflow) و (Numpy).


السطر رقم (1): إنشاء البيانات الخاصة بتدريب النموذج, وهي عبارة عن مصفوفة نوع (numpy). وقد إخترنا البيانات من نوع (float32) لأننا بحاجة إلى هذا النوع من البيانات عند حسابات القيمة الخارجة وكذلك في عملية تحديث الأوزان.


السطر رقم (2): إنشاء البيانات الخاصة بالتسميات (Labels) لغرض التدريب.


الأسطر من (1لغاية (4): إنشاء دالة لحساب قيمة الفقد (Loss) أو الكلفة (Cost).

السطر رقم (2): إختيار الخوارزمية المناسبة لحساب قيمة الفقد عن طريق الكلاس (MeanSquaredError).

السطر رقم (3): تمرير قيمة الإخراج للنموذج (pred_y) وكذلك قيمة التسمية (Label) إلى الخوارزمية.

الأسطر من (1لغاية (15):  لإنشاء المصفوفات الخاصة بمعاملات النموذج (Parameters) وهي العناصر التي يجب تحديث قيم عناصرها إثناء عملية التدريب وهي الأوزان (Weights) و كذلك قيم الإنحياز (Biases).

وقد جعلناها قابلة للتحديث من خلال الخاصية (trainable).


السطر رقم (1): لإختيار خوارزمية التحسين (Optimization) والتي تعمل على إجراء عمليات التحديث على عناصر النموذج (Model parameters). وقد إخترنا الخوارزمية نوع (Adam), وقد إخترنا معدل التعليم (Learning rate)  ليكون (0.1).


السطر رقم (1): إضافة العبارة (@tf.function) التي تسبق الدالة الخاصة بتدريب النموذج, حيث إنَّ الغاية من ذلك هي تقليل الزمن اللازم للتدريب وذلك بإستخدام خاصية الرسوم (Graphs) في تنفيذ العمليات الحسابية وبالتالي تكون العملية أسرع. إن الإصدار الثاني من مكتبة (Tensorflow) يستخدم خاصية (Eager Excution)

وفيها يتم تنفيذ العمليات (Operations)  المختلفة بشكل مباشر ودون تحوليها إلى رسوم (Graphs).

الأسطر من (2لغاية (11): لإنشاء دالة تقوم بعملية التدريب (Training) للنموذج (Model).

السطر رقم (3): إستدعاء الكلاس (GradientTape) وأخذ نسخة منه سميناها (tape). حيث إنه يعمل وكأنه شريط تسجيل يحتفظ بالعمليات الحسابية التي تحدث داخله لأجل إستدعائها في عملية حساب الميل أو المشتقة (Gradient) ومن ثم إجراء عمليات التحديث على الأوزان من خلال تقنية (Back Propagation) أي الإنتشار الخلفي.

السطر رقم (4وكذلك السطر رقم (5): حساب القيمة الخارجة من الطبقة المخفية الأولى (Hidden layer).

السطر رقم (6وكذلك السطر رقم (7): حساب القيمة الخارجة من النموذج.

السطر رقم (8): إستدعاء الدالة (loss) التي تقوم بحساب قيمة الفقد (Loss value) وتمرير قيمتين لها هما القيمة الخارجة من النموذج (pred_y) وكذلك قيمة التسمية (real_y) والتي هي (y_train).

السطر رقم (9): القيام بحساب المشتقات (dy/dx) لقيمة الفقد (reg_loss) بالنسبة إلى كل من (w1, b1, w2, b2).

السطر رقم (10): للقيام بعملية التحديث لعناصر النموذج.


السطر رقم (1): إنشاء حلقة تكرارية لتكرار عملية التحديث بإستخدام نفس البيانات.

السطر رقم (2): إستدعاء الدالة (step) التي تقوم بعملية التدريب وتمرير بيانات التدريب لها.

السطر رقم (3): طباعة قيم المتجه (Vector) الخارج من النموذج بعد آخر دفعة تدريب.

وبعد تنفيذ التطبيق حصلنا على القيم المينة أعلاه أسفل الكود, حيث إنها قريبة جداً من قيم بيانات الإدخال (x_train).




خلاصة ماجاء في هذه المقالة:
تناولنا في هذه المقالة مكتبة (TensorFlow) والتي هي من اشهر المكتبات في مجال تعلم الآلة والتعلم العميق, حيث قمنا بالتعرف عليها من خلال بعض مزاياها وخصائصها وشرح لبعض مفرداتها وإصطلاحاتها ودلالة هذه الإصطلاحات, وكذلك القيام بتنفيذ بعض الأمثلة البسيطة لأجل التعود على إستخدام هذه المكتبة. كذلك قمنا بشرح تفصيلي لعملية إضافة هذه المكتبة ومن خلال بيئة (Anaconda).
كذلك شرحنا كيفية تهيئة برنامج (PyCharm) وعملية ربطه ببيئة (Anaconda).

خاتمة:

لقد أجلنا التعريف بمكتبة (keras) الى المقالة القادمة إن شاء ألله, حيث نبدأ بالدراسة الفعلية لموضوع التعلم العميق وسوف نبدأ بدراسة بعض المواضيع التي من المهم جداً إستيعابها وفهمها لكي نكون قد دخلنا عالم التعلم العميق بأساس قوي يمكننا من فهم وإستيعاب مطالبه المختلفة, ومن ألله نسأل العون والتوفيق.

المهندس حسن فنجان عداي.               








reaction:

تعليقات