دليل تعليمي لـ TensorFlow للمبتدئين
يُعدّ TensorFlow أحد أشهر أطر العمل في مجال التعلّم العميق والتعلّم الآلي. طُوّر TensorFlow بواسطة فريق Google Brain، ويُستخدم على نطاق واسع في العديد من المشاريع البحثية والتطبيقات الصناعية. تُقدّم هذه المقالة دليلاً تفصيلياً خطوة بخطوة لمساعدتك، كمبتدئ، على البدء باستخدام TensorFlow.
1. فهم أساسيات TensorFlow
قبل البدء بتثبيت واستخدام TensorFlow، من المهم فهم ماهية TensorFlow والمفاهيم الأساسية التي يقوم عليها. TensorFlow هو إطار عمل مفتوح المصدر للحسابات العددية والتعلم الآلي. يستخدم TensorFlow مخططات تدفق البيانات لإجراء العمليات الحسابية، حيث تمثل العقد في المخطط العمليات الرياضية، وتمثل الحواف مصفوفات البيانات متعددة الأبعاد (الموترات) المتصلة بينها.
2. تثبيت TensorFlow
الخطوة الأولى لاستخدام TensorFlow هي تثبيته. إليك كيفية تثبيت TensorFlow باستخدام pip، مدير حزم بايثون.
1. تثبيت بايثون:
تأكد من تثبيت بايثون على جهازك. يتوافق TensorFlow مع إصدارات بايثون من 3.6 إلى 3.9 وقت كتابة هذا النص. يمكنك تنزيل بايثون من موقع بايثون الرسمي.
2. البيئة الافتراضية:
يوصى بشدة بإنشاء بيئة افتراضية لعزل مشروع TensorFlow الخاص بك:
"ش
بايثون -m venv myenv
تفعيل متغير البيئة myenv/bin باستخدام الأمر source myenv/bin/activate (لمستخدمي نظامي التشغيل Mac/Linux)
myenv\Scripts\activate لمستخدمي نظام التشغيل Windows
"`
3. تثبيت TensorFlow:
الآن، قم بتثبيت TensorFlow باستخدام pip:
"ش
نقطة تثبيت tensorflow
"`
3. تطبيق "مرحباً بالعالم" باستخدام TensorFlow
بعد تثبيت TensorFlow، لننشئ برنامج بايثون بسيطًا للتحقق من التثبيت. أنشئ ملف بايثون جديدًا وسمّه `hello_tensorflow.py`.
"الثعبان
استيراد tensorflow مثل tf
إنشاء ثابت
hello = tf.constant('Hello, TensorFlow!')
بدء الجلسة
مع tf.Session() كـ sess:
result = sess.run(hello)
طباعة (نتيجة)
"`
قم بتعديل الكود وفقًا لإصدار TensorFlow 2.x:
"الثعبان
استيراد tensorflow مثل tf
إنشاء ثابت
hello = tf.constant('Hello, TensorFlow!')
تشغيل باستخدام التنفيذ الفوري (مفعل افتراضياً)
print(hello.numpy())
"`
احفظ الملف، ثم قم بتشغيله:
"ش
python hello_tensorflow.py
"`
4. فهم الموترات والعمليات الأساسية
تُعدّ الموترات بنية البيانات الأساسية في TensorFlow، وهي عبارة عن مصفوفات متعددة الأبعاد. إليك بعض الأمثلة التي تساعدك على فهم الموترات:
"الثعبان
استيراد tensorflow مثل tf
إنشاء الموترات
قيمة عددية = tf.constant(7) قيمة عددية
vector = tf.constant([1, 2, 3]) vector
matrix = tf.constant([[1, 2], [3, 4]]) matrix
tensor3d = tf.constant([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]) موتر ثلاثي الأبعاد
print(f'Scalar: {scalar}')
print(f'Vector: {vector}')
print(f'Matrix: {matrix}')
print(f'Tensor 3D: {tensor3d}')
"`
لإجراء العمليات الأساسية على الموترات:
"الثعبان
a = tf.constant([[1, 2], [3, 4]])
b = tf.constant([[5, 6], [7, 8]])
عملية جمع
add = tf.add(a, b)
عمليات ضرب المصفوفات
mul = tf.matmul(a, b)
print(f'الإضافة: {add}')
print(f'عملية ضرب المصفوفات: {mul}')
"`
5. إنشاء نموذج شبكة عصبية بسيط
الخطوة التالية هي إنشاء نموذج شبكة عصبية بسيط. سنبني نموذجًا لتصنيف الصور باستخدام مجموعة بيانات MNIST، وهي قاعدة بيانات لصور الأرقام المكتوبة بخط اليد. هيا بنا نبدأ:
"الثعبان
استيراد tensorflow مثل tf
من Tensorflow.keras قم باستيراد مجموعات البيانات والطبقات والنماذج
تنزيل مجموعة بيانات MNIST
(train_images, train_labels), (test_images, test_labels) = datasets.mnist.load_data()
تطبيع الصورة
صور القطار، صور الاختبار = صور القطار / 255.0، صور الاختبار / 255.0
صنع نموذج
النموذج = النماذج.متسلسل([
layers.Flatten(input_shape=(28, 28)),
طبقات كثيفة (128، التنشيط='relu')،
طبقات كثيفة(10)
])
تجميع النموذج
نموذج التجميع (المحسن='آدم'،
الخسارة=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True)،
المقاييس=['الدقة'])
تدريب النموذج
نموذج.fit(صور القطار، تسميات القطار، العصور=5)
اختبار النموذج
test_loss, test_acc = model.evaluate(test_images, test_labels)
print(f'دقة الاختبار: {test_acc}')
"`
توضيح:
– مجموعات البيانات: نقوم باستيراد وتحميل مجموعة بيانات MNIST.
– المعالجة المسبقة: تطبيع مجموعة البيانات عن طريق قسمة قيم البكسل على 255.
– النموذج: نُعرّف نموذجًا بسيطًا من طبقتين. الطبقة الأولى هي طبقة "تسطيح" لتحويل الصورة ثنائية الأبعاد إلى مصفوفة أحادية البعد. الطبقة الثانية هي طبقة "كثيفة" تحتوي على 128 عصبونًا ودالة التنشيط "relu". أما الطبقة الأخيرة فهي طبقة "كثيفة" تحتوي على 10 عصبونات تمثل 10 فئات.
- التجميع: نقوم بتجميع النموذج باستخدام مُحسِّن `adam` ودالة الخسارة `SparseCategoricalCrossentropy`.
– التدريب: قم بتدريب النموذج لمدة 5 دورات.
– التقييم: قم بتقييم النموذج مقابل بيانات الاختبار.
6. حفظ وتحميل النماذج
بعد تدريب النموذج، قد ترغب في حفظه لاستخدامه لاحقًا دون الحاجة إلى إعادة تدريبه. إليك كيفية حفظ النموذج وتحميله:
"الثعبان
حفظ النموذج
model.save('my_model.h5')
تحميل النموذج
new_model = tf.keras.models.load_model('my_model.h5')
التحقق من النموذج المحمّل
loss, acc = new_model.evaluate(test_images, test_labels)
print(f'دقة النموذج المحمّل: {acc}')
"`
استنتاج
يقدم هذا الدليل شرحًا مفصلًا لكيفية البدء باستخدام TensorFlow للمبتدئين. وقد غطينا التثبيت، وعمليات الموترات الأساسية، وبناء نموذج شبكة عصبية بسيط باستخدام مجموعة بيانات MNIST. يوفر TensorFlow العديد من الإمكانيات المتقدمة التي يمكن استكشافها، مثل معالجة البيانات المتقدمة، والنماذج الأكثر تعقيدًا، واستخدام TensorFlow على أجهزة مثل وحدات معالجة الموتر (TPUs) ووحدات معالجة الرسومات (GPUs). نأمل أن يساعدك هذا الدليل في الانطلاق في عالم التعلم الآلي باستخدام TensorFlow.