المقدمة: السؤال الذي يشغل بال كل مبرمج الآن
هل فكرت يومًا: “أنا بدي أدخل عالم الذكاء الاصطناعي بس من وين بدي أبدأ؟ وكيف بنبني تطبيق ذكاء اصطناعي من الصفر؟”
أول مرة أتفرجت على TensorFlow، كنت متخوف. الموضوع بدا معقد جدًا، والتوثيق الرسمي كان مليان معادلات رياضية وكلام نظري ما فهمت منه حاجة. قلت لنفسي: “هاي فقط للدكاترة والباحثين”. لكن بعد ما بدأت أشتغل عليه بجد، اكتشفت إن الموضوع أسهل بكتير مما بتخيل — إذا عرفت الخطوات الصح.
في هذا المقال، رح أشرح لك كيفية بناء تطبيقات ذكاء اصطناعي حقيقية باستخدام TensorFlow، من الأساسيات إلى مشروع عملي كامل. وهاي ليست نظرية جافة — هاي من تجربتي العملية والأخطاء اللي وقعت فيها.
ما هي TensorFlow؟ وليش تستخدمها؟
قبل ما نبدأ بالكود، لازم نفهم شنو الموضوع بالضبط.
TensorFlow هي مكتبة مفتوحة المصدر طورتها Google خصيصًا لبناء تطبيقات الذكاء الاصطناعي والتعلم الآلي. بس ما تخاف — هاي ليست فقط للعلماء. أنا بستخدمها لبناء تطبيقات عملية وحقيقية كل يوم.
ليش TensorFlow وليس غيرها؟
من تجربتي، TensorFlow فيها مزايا معينة:
- توثيق رسمي قوي: Google وراءها، والتوثيق واضح وكامل
- مجتمع ضخم: إذا وقعت بمشكلة، فيه ألاف الناس واجهوها قبلك
- سهلة التعلم: خاصة مع
Kerasاللي بتخليك تبني نماذج معقدة بأسطر قليلة - أداء عالي جدًا: بتشتغل على أنواع مختلفة من الأجهزة (CPU, GPU, TPU)
- حرة تماسًا: مفتوحة المصدر وبدون رسوم
لكن هاي ليست الخيار الوحيد. في مكتبات أخرى مثل PyTorch و Scikit-learn، لكن لأسباب عملية، اخترت TensorFlow لأنها الأسهل للمبتدئين والأقوى للمشاريع الكبيرة.
الخطوة الأولى: تجهيز البيئة
الآن، قبل ما نكتب أي كود، لازم نجهز البيئة الصح.
تثبيت Python أولًا
TensorFlow تشتغل مع Python (وهاي أفضل لغة تبدأ بيها إذا كنت مهتم بالذكاء الاصطناعي — اقرأ مقالتنا الكاملة عن اختيار لغة البرمجة لتعرف ليش).
تأكد إن عندك Python 3.8 أو أحدث. إذا ما عندك، حمّل من الموقع الرسمي.
تثبيت TensorFlow
الآن، افتح terminal أو command prompt وكتب:
bashpip install tensorflow
بس كتب هاي الجملة، وانتظر شوية. التثبيت ممكن يأخذ وقت لأن الملفات كبيرة شوية.
التحقق من التثبيت
بعد ما ينتهي، اختبر إن كل شيء شغال:
pythonimport tensorflow as tf
print(tf.__version__)
إذا طبعت رقم النسخة (مثل 2.14.0)، يعني التثبيت نجح. إذا في خطأ، ركضت google عن المشكلة وعادة حتلاقي الحل بسرعة.
المفاهيم الأساسية اللي لازم تعرفها
الآن بدي أشرح لك الأفكار الأساسية وراء TensorFlow. لا تخاف إن بدت معقدة — رح اشرحها بطريقة بسيطة.
1. التنسور (Tensor)
أول حاجة: شنو معنى “TensorFlow”؟ الـ “Tensor” هي كلمة رياضية بسيطة جدًا.
فكّر فيها ببساطة:
- Scalar: رقم واحد (مثل 5)
- Vector: قائمة أرقام (مثل
[1, 2, 3]) - Matrix: جدول أرقام (مثل جدول إكسل)
- Tensor: أي شيء أكثر تعقيدًا (صور، فيديوهات، بيانات معقدة)
كل ما في TensorFlow هو عبارة عن tensors. لاحقًا رح نستخدمها لتمثيل البيانات.
2. النموذج (Model)
النموذج هو “مخ اصطناعي” بنبنيه. يأخذ بيانات من جهة، يعالجها، ويطلع نتيجة من الطرف الآخر.
مثال بسيط: نموذج يأخذ صورة قطة ويقول “هاي قطة” أو “هاي ليست قطة”.
3. التدريب (Training)
التدريب هو العملية اللي بتعطيك أمثلة كتيرة للنموذج وتقول: “هاي قطة، هاي كلب، هاي عصفور” — حتى يتعلم النموذج الفرق.
بناء أول نموذج ذكاء اصطناعي (تصنيف الأرقام)
الآن رح نبدأ بمشروع حقيقي. بدي نبني نموذج يتعرف على الأرقام المكتوبة بخط اليد.
البيانات: حيث يبدأ كل شيء
نستخدم مجموعة بيانات شهيرة اسمها MNIST. هاي مجموعة تضم 70,000 صورة لأرقام مكتوبة بخط اليد (من 0 إلى 9).
الخطوة الأولى دائمًا: جلب البيانات.
pythonfrom tensorflow import keras
from tensorflow.keras import layers
import numpy as np
# تحميل مجموعة البيانات
(x_train, y_train), (x_test, y_test) = keras.datasets.mnist.load_data()
# طباعة معلومات البيانات
print(f"عدد صور التدريب: {len(x_train)}")
print(f"شكل الصورة الواحدة: {x_train.shape}")
هاي الخطوة ببساطة: بنحمل 70,000 صورة وأرقامها الصحيحة.
تنظيف البيانات (Preprocessing)
البيانات الخام غالبًا ما تكون فوضى. لازم نرتبها:
python# تطبيع البيانات (جعل القيم بين 0 و 1)
x_train = x_train.astype("float32") / 255.0
x_test = x_test.astype("float32") / 255.0
# تسطيح الصور (من 28x28 إلى 784 قيمة)
x_train = x_train.reshape(-1, 28*28)
x_test = x_test.reshape(-1, 28*28)
print(f"شكل البيانات بعد التنظيف: {x_train.shape}")
الفكرة: كل صورة 28×28 بكسل، بنحولها إلى 784 قيمة عددية بسيطة.
بناء النموذج
الآن يأتي الجزء الممتع — بناء النموذج نفسه:
python# بناء النموذج
model = keras.Sequential([
layers.Dense(128, activation="relu", input_shape=(784,)),
layers.Dropout(0.2),
layers.Dense(64, activation="relu"),
layers.Dropout(0.2),
layers.Dense(10, activation="softmax")
])
# طباعة معلومات النموذج
model.summary()
شنو اللي بقول؟
- Dense(128): طبقة بـ 128 خلية عصبية (neurons)
- activation=”relu”: دالة تفعيل (بتخليك تتعلم أشكال معقدة)
- Dropout(0.2): بتوقف 20% من الخلايا عشان ما يصير “overfitting” (تحفظ النموذج بدل ما يتعلم)
- Dense(10): طبقة النتيجة الآخيرة (10 احتمالات من 0 إلى 9)
تجميع النموذج
قبل التدريب، لازم “نجمّع” النموذج — أي نقول له: “شنو الخسارة اللي بتراقبها؟ وشنو المحسّن اللي بتستخدمه؟”
pythonmodel.compile(
optimizer="adam",
loss="sparse_categorical_crossentropy",
metrics=["accuracy"]
)
- optimizer=”adam”: خوارزمية تدريب قوية جدًا
- loss: دالة الخسارة (كم النموذج غلط؟)
- metrics: شنو اللي بدي أراقبه أثناء التدريب؟
التدريب: اللحظة الحقيقية
الآن، بدي ندرّب النموذج:
pythonhistory = model.fit(
x_train, y_train,
epochs=10,
batch_size=32,
validation_split=0.2,
verbose=1
)
هاي رح تأخذ وقت (ربع ساعة أو أكتر حسب جهازك). بتشوف في الشاشة:
- Epoch 1/10: النموذج يتعلم من الصورة الأولى إلى الأخيرة
- loss و accuracy: بتنخفض الخسارة وترتفع دقة النموذج مع كل epoch
اختبار النموذج
بعد التدريب، لازم نختبر النموذج على بيانات ما شافها قبل:
pythontest_loss, test_accuracy = model.evaluate(x_test, y_test)
print(f"دقة النموذج على بيانات الاختبار: {test_accuracy * 100:.2f}%")
إذا جاب نتيجة فوق 95%، يعني النموذج تعلم صح. لكن إذا كانت أقل من 80%، فيه مشكلة.
استخدام النموذج على صور جديدة
الآن، كيف نستخدم النموذج على صورة جديدة؟
python# نأخذ صورة واحدة من بيانات الاختبار
test_image = x_test[0:1] # صورة واحدة
# نتنبأ بالرقم
prediction = model.predict(test_image)
predicted_digit = np.argmax(prediction)
print(f"التنبؤ: {predicted_digit}")
print(f"احتمالات كل رقم: {prediction}")
نصائح عملية من التجربة
بعد ما بنيت عشرات النماذج، اكتشفت نصائح كتير مهمة:
1. البيانات أهم من النموذج
سمعت هاي الجملة كتير: “الذكاء الاصطناعي 80% بيانات و20% نموذج”. هاي حقيقية جدًا من تجربتي.
إذا عندك 100 صورة من كل رقم، النموذج رح يعطيك نتائج سيئة. بس إذا عندك 10,000 صورة لكل رقم، النموذج رح يتعلم أحسن بكتير.
2. ابدأ بسيط
أول مشروع عملت عليه، حاولت أبني نموذج معقد جدًا (5 طبقات، dropout عالي، كل شيء). النموذج كان بطيء وما بدا يتعلم زين.
بعدها بدأت بنموذج بسيط (3 طبقات بس)، وطلع أسرع وأفضل. ابدأ بسيط، ثم أضف التعقيد إذا احتجت.
3. راقب الـ Overfitting
الـ overfitting يصير عندما النموذج يتحفظ على البيانات بدل ما يتعلم الأنماط الحقيقية. بتشوف:
- Training accuracy عالي جدًا (مثل 99%)
- Test accuracy منخفض (مثل 70%)
الحل: استخدم Dropout أو أقلل عدد epochs.
4. حفظ النموذج لاحقًا
بعد ما تدرب النموذج، حفظه:
pythonmodel.save("my_model.h5")
لاحقًا بتقدر تحمله بدون ما تدرب من الصفر:
pythonloaded_model = keras.models.load_model("my_model.h5")
مشاريع حقيقية بتقدر تبنيها
الآن بعد ما فهمت الأساسيات، شنو المشاريع اللي بتقدر تبنيها؟
1. تصنيف الصور (Image Classification)
تدرب نموذج يعرف الفرق بين قطط وكلاب. بتقدر تستخدم مجموعة بيانات مثل CIFAR-10 أو حتى صور من Google Images.
2. التنبؤ بالأسعار (Regression)
إذا عندك بيانات عن أسعار العقارات (الحجم، العمر، الموقع)، بتقدر تبني نموذج يتنبأ بالسعر.
3. معالجة النصوص (Text Processing)
بناء chatbot يفهم اللغة الطبيعية. اقرأ عن معالجة النصوص هنا للمزيد من التفاصيل.
4. التعرف على الأشياء (Object Detection)
نموذج يحدد أماكن الأشياء في الصورة (ليس فقط تصنيف، بل تحديد الموقع أيضًا).
مصادر مهمة
إذا بدك تتعمق أكتر:
- التوثيق الرسمي لـ TensorFlow: هاي أفضل مصدر، وحسن عنهم كتير
- Keras API: الجزء الأسهل من TensorFlow
- Google Colab: بيئة مجانية لتشغيل النماذج (بدون تثبيت على جهازك)
- Stack Overflow للأسئلة المعقدة: لما تقع في مشكلة ما لقيت الحل
الخاتمة: ابدأ الآن
تذكر: كل أحد بدأ مثلك — بسؤال، بفضول، وبخطوة صغيرة أولى.
أول نموذج كنت أبنيه كان بسيط جدًا وما كان دقيق. لكن بعد ما عملت عشرات المشاريع، الآن أنا قادر أبني أي نموذج ذكاء اصطناعي تقريبًا.
الخطوة التالية:
- ثبت TensorFlow على جهازك
- اكتب الكود الأول (نموذج تصنيف الأرقام)
- اختبره وشوف النتائج
- جرب مشروع آخر أكتر تعقيدًا
الذكاء الاصطناعي ليس سحر — هو فقط رياضيات وبيانات وجهد. وأنت قادر عليه.
ابدأ الآن. لا تنتظر.
اكتشاف المزيد من كود التطور
اشترك للحصول على أحدث التدوينات المرسلة إلى بريدك الإلكتروني.


