التعلم العميق باستخدام TensorFlow 2.0: كل ما تحتاج إلى معرفته
نشرت: 2021-01-05TensorFlow هو إطار عمل تعلم الآلة من Google. يتم استخدامه بشكل أساسي للمهام ذات الصلة بـ Deep Learning ويتكامل بسلاسة مع واجهات برمجة تطبيقات Google الأخرى أيضًا. من الواضح أن TensorFlow هي واحدة من أكثر المكتبات استخدامًا للتعلم العميق في الصناعة في الوقت الحالي وتستحق التعلم تمامًا!
بنهاية هذا البرنامج التعليمي ، ستكون لديك معرفة بما يلي.
- ما هو TensorFlow؟
- ما الجديد في TF 2.0؟
- TensorFlow مقابل Keras
- تثبيت TensorFlow
- مصنف الصور في TensorFlow
جدول المحتويات
ما هو TensorFlow؟
بدأت TensorFlow كمكتبة مفتوحة المصدر للتعليم العميق من Google وهي الآن إطار عمل كامل لعمليات التعلم الآلي من البداية إلى النهاية. قد تتساءل عن سبب اختيار Google لهذا الاسم وماذا يعني "Tensor".
ما هو موتر؟
الموترات عبارة عن مصفوفات متعددة الأبعاد بشكل فعال تمكنك من إجراء عمليات معقدة على مصفوفات متعددة الأبعاد. ومع ذلك ، فهي ليست مجرد مجموعة ذات أبعاد N.
يتضمن Tensor أيضًا التحويلات مثل حاصل الضرب النقطي والإضافة ومضاعفة المصفوفة وما إلى ذلك.
لكن لماذا هم مهمون؟
الموترات ليست جديدة. لقد تم استخدامها منذ فترة طويلة ، ولكن يتم استغلال خصائصها بشكل كبير في مجال التعلم العميق ، حيث تكون البيانات عادة ضخمة ومتعددة الأبعاد.

الموترات ، تمامًا مثل مصفوفات Numpy ، لها أيضًا شكل ونوع بيانات. جميع الموترات غير قابلة للتغيير مثل أرقام وسلاسل Python: لا يمكنك أبدًا تحديث محتويات الموتر ، فقط قم بإنشاء واحد جديد.
ولكن ما يجعلهم مختلفين عن مصفوفات Numpy المعتادة هو قدرتها على استخدام ذاكرة GPU وقوة الحوسبة التي تعتبر ذات أهمية قصوى عندما تكون البيانات عالية الأبعاد والحجم بالملايين أو أكثر.
يتم استخدام Tensors بشكل كبير في أطر عمل التعلم العميق مثل Pytorch على Facebook و TensorFlow من Google ، والذي تم تسميته باسمهما!
طورت Google أيضًا مسرعًا آخر للذكاء الاصطناعي ، يسمى Tensor Processing Unit (TPU) ، خاصة لـ TensorFlow الذي يأخذ التحسين إلى المستوى التالي تمامًا!
قراءة: التنظيم في التعلم العميق
ما الجديد في TF 2.0؟
أصدرت Google الإصدار الأول من TensorFlow 1 في عام 2015 بواسطة فريق Google Brain.
لم يكن استخدام TensorFlow 1.x لإنشاء شبكات عصبية مهمة سهلة حيث تطلب الأمر كتابة الكثير من التعليمات البرمجية.
التقييم الكسول مقابل التقييم الحريص
مع TensorFlow 1.x ، كانت هناك حاجة لعمل جلسات وتشغيل تلك الجلسات لتوليد مخرجات أي "رسم بياني". دعونا نفهم هذا مع الكود أدناه
استيراد tensorflow مثل tf أ = tf.constant (1) |
لن يمنحك تشغيل الكود أعلاه المخرجات التي تريدها ، أي 3. هذا لأن TensorFlow 1.x عمل في جلسات.
الجلسة هي نوع من البيئة التي تحتوي على جميع المتغيرات والتحولات التي تحتاج إلى القيام بها.
تم عمل رسم بياني للتحولات لم يتم تقييمه حتى تم استدعاؤه بشكل خاص عن طريق تشغيل tf.session.run ().
لذلك ، فإن الكود أعلاه سيعيد ما تتوقعه إذا قمت بما يلي:
tf.Session.run (ج) |
وهذا ما يسمى التقييم الكسول. لأنها تنتظر بتكاسل حتى يُطلب منها الجري على وجه التحديد.
كانت هذه العملية الطويلة والمعقدة بحاجة إلى حل ، ومن هنا جاءت الحاجة إلى TensorFlow 2.x.
يأتي TF 2.x مع تقييم Eager افتراضيًا مما يسهل علينا حقًا كتابة التعليمات البرمجية وتشغيل العمليات.
لا توجد جلسات الآن وتدريب الشبكة العصبية الذي استغرق 100 سطر في TF 1.x يستغرق أقل من 20 مع TF 2.x.
يعد التنفيذ الحثيث لـ TensorFlow بيئة برمجة إلزامية تقوم بتقييم العمليات على الفور ، دون إنشاء الرسوم البيانية: تعيد العمليات قيمًا ملموسة بدلاً من إنشاء رسم بياني حسابي لتشغيله لاحقًا.
هذا يجعل من السهل البدء في نماذج TensorFlow وتصحيح الأخطاء ، كما أنه يقلل من المستوى المعياري أيضًا.
TensorFlow مقابل Keras
السؤال في الحقيقة ليس TensorFlow vs Keras. إنه TensorFlow مع Keras. قدمت Keras واجهة برمجة تطبيقات عالية المستوى عبر TensorFlow 1.x مما جعل العمل معها أمرًا سهلاً للغاية.

الآن مع TF 2.0 ، جعلت TensorFlow رسميًا Keras جزءًا من واجهة برمجة التطبيقات الخاصة بها لتصميم النماذج والتدريب مع tf.keras.
يُقترح الآن تنفيذ جميع التعليمات البرمجية التي تم إجراؤها مسبقًا في Keras باستخدام tf.keras في TF 2.0 لأنه يتيح لها استخدام جميع مكونات TensorFlow والنظام البيئي مثل:
- خدمة TensorFlow التي تُستخدم لخدمة / نشر نماذج TensorFlow بسلاسة.
- TensorFlow Lite وهو إصدار محمول من TensorFlow قادر على العمل على Android و IOS.
- TensorFlow.js عبارة عن مجموعة من واجهات برمجة التطبيقات التي تسمح لنا ببناء وتدريب النماذج باستخدام إما مكتبة الجبر الخطي جافا سكريبت منخفضة المستوى أو واجهة برمجة التطبيقات للطبقات عالية المستوى. ومن ثم ، يمكن تدريب نماذج التعلم العميق وتشغيلها في المتصفح.
- TensorBoard عبارة عن مجموعة من أدوات التصور لفهم برامج TensorFlow وتصحيحها وتحسينها.
تثبيت TensorFlow
إذا كنت جديدًا على التعلم الآلي ، فإن أسهل طريقة للحصول على الأشياء المتدرجة هي فتح Colab Notebook. ما عليك سوى الانتقال إلى https://colab.research.google.com/ والنقر على "New Python 3 Notebook."
تأكد من أن kernel يقول "متصل" في أعلى اليمين. أخبار سارة ، TensorFlow يأتي مثبتًا مسبقًا في Google Colab.
هاهو! أنت جاهز تمامًا.
للتحقق مما إذا كنت تستخدم الإصدار الصحيح ، قم بتشغيل المقتطف أدناه.
استيراد tensorflow مثل tf tf .__ الإصدار__ |
يجب أن يذكر أي إصدار أعلى من 2.0.0 وأنت على ما يرام.
مصنف الصور في TensorFlow
دعنا الآن ننتقل إلى "Hello World" لمشاكل التعلم العميق - مجموعة بيانات MNIST.
سنبني شبكة عصبية قصيرة للتنبؤ بمجموعة بيانات MNIST. سنتبع الخطوات أدناه.
- بناء شبكة عصبية تصنف الصور.
- تدريب شبكة عصبية.
- تقييم دقة النموذج
استيراد TensorFlow.
استيراد tensorflow مثل tf |
تحميل بيانات MNIST.
mnist = tf.keras.datasets.mnist (x_train ، y_train) ، (x_test ، y_test) = mnist.load_data () |
بناء نموذج تسلسلي tf.keras عن طريق تكديس الطبقات.
سنحتاج إلى اختيار مُحسِّن ووظيفة خسارة أيضًا للنموذج للتدرب عليه.
النموذج = tf.keras.models.Sequential ([ tf.keras.layers.Flatten (input_shape = (28، 28)) ، tf.keras.layers.Dense (128 ، تنشيط = 'relu') ، tf.keras.layers.Dropout (0.2) ، tf.keras.layers.Dense (10) ]) |
تحديد وظيفة فقدان الانتروبيا المتفرقة المتفرقة.
loss_fn = tf.keras.losses.SparseCategoricalCrossentropy (from_logits = True) |
تجميع النموذج.
model.compile (Optizer = 'adam'، الخسارة = loss_fn ، المقاييس = ["الدقة"]) |
تدريب النموذج في 5 فترات.
model.fit (x_train ، y_train ، العهود = 5) |
تقييم النموذج.
تقييم النموذج (x_test ، y_test ، مطول = 2) |
313/313 - 0 ثانية - خسارة: 0.0825 - الدقة: 0.9753 [0.082541823387146، 0.9753000140190125] |
تم تدريب مصنف الصور الآن على دقة تصل إلى 98٪ على مجموعة البيانات هذه.
قبل ان تذهب
يركز TensorFlow 2 على البساطة وسهولة الاستخدام ، مع تحديثات مثل التنفيذ الحثيث وواجهات برمجة التطبيقات عالية المستوى البديهية وبناء النماذج المرنة على أي نظام أساسي.

TensorFlow هي مكتبة / أداة الانتقال لأي مهمة تعلم عميق هذه الأيام. المكتبة الأخرى الأكثر استخدامًا وشعبية هي PyTorch على Facebook.
يجعل النظام البيئي الممتد لـ TensorFlow منه مكانًا رائعًا لبدء رحلة التعلم العميق الخاصة بك. إنه سهل الفهم والأهم من ذلك أنه سهل التنفيذ.
أفضل مكان للبدء هو واجهة برمجة التطبيقات التسلسلية سهلة الاستخدام. يمكنك إنشاء نماذج عن طريق توصيل الكتل الإنشائية معًا. تعرف على المزيد حول تقنيات التعلم العميق.
خاتمة
الآن ، بعد أن أصبح لديك فكرة مفصلة عن جميع أطر عمل التعلم العميق الرئيسية الموجودة هناك ، يمكنك اتخاذ قرار مستنير واختيار الخيار الذي يناسب مشروعك بشكل أفضل.
إذا كنت مهتمًا بمعرفة المزيد عن التعلم العميق والذكاء الاصطناعي ، فراجع دبلومة PG في التعلم الآلي وبرنامج الذكاء الاصطناعي المصمم للمهنيين العاملين ويوفر أكثر من 30 دراسة حالة ومهمة ، و 25+ جلسة إرشاد في الصناعة ، وأكثر من 5 أيدي عملية - على مشاريع التخرج ، أكثر من 450 ساعة من التدريب الصارم والمساعدة في التوظيف مع الشركات الكبرى.