التعلم العميق متقدم · Advanced 15 دقيقة

TensorFlow

TensorFlow and Keras

بناء النماذج وتدريبها بواجهة Keras عالية المستوى: compile وfit وevaluate والاستدعاءات.

تقدّمك في المسار0%

التثبيت

pip install tensorflow

راجع صفحة التثبيت الرسمية لمتطلبات GPU وإصدارات Python المدعومة.

نموذج Sequential

import tensorflow as tf
from tensorflow import keras

(x_train, y_train), (x_test, y_test) = keras.datasets.mnist.load_data()   # تُنزّل عند أول استخدام
x_train, x_test = x_train / 255.0, x_test / 255.0

model = keras.Sequential([
    keras.Input(shape=(28, 28)),
    keras.layers.Flatten(),
    keras.layers.Dense(128, activation="relu"),
    keras.layers.Dropout(0.2),
    keras.layers.Dense(10),                 # logits
])
model.compile(optimizer="adam",
              loss=keras.losses.SparseCategoricalCrossentropy(from_logits=True),
              metrics=["accuracy"])
model.summary()

التدريب مع الاستدعاءات

callbacks = [
    keras.callbacks.EarlyStopping(monitor="val_loss", patience=3, restore_best_weights=True),
    keras.callbacks.ModelCheckpoint("best.keras", monitor="val_loss", save_best_only=True),
]
history = model.fit(x_train, y_train, epochs=20, batch_size=64,
                    validation_split=0.1, callbacks=callbacks)
print(model.evaluate(x_test, y_test, verbose=0))

history.history يحتوي قيم الخسارة والدقة لكل حقبة لرسم منحنيات التعلم.

الواجهة الوظيفية

inputs = keras.Input(shape=(28, 28, 1))
x = keras.layers.Conv2D(32, 3, activation="relu")(inputs)
x = keras.layers.MaxPooling2D()(x)
x = keras.layers.Flatten()(x)
outputs = keras.layers.Dense(10)(x)
cnn = keras.Model(inputs, outputs)

تسمح ببناء نماذج بمدخلات أو مخرجات متعددة أو تفرعات.

PyTorch أم TensorFlow؟

PyTorchTensorFlow/Keras
أسلوب التدريبحلقة صريحة يكتبها المستخدمfit جاهزة (مع إمكانية التخصيص)
الانتشار البحثيواسع جداًواسع
النشرTorchScript، ONNXTF Serving، TF Lite، TF.js

تعلم المفاهيم أهم من الإطار؛ الانتقال بينهما سهل بعد فهم الانتشار الأمامي والخلفي والمحسّنات.

مصطلحات الدرس

Keras Keras API
واجهة عالية المستوى لبناء الشبكات العصبية وتدريبها، وهي الواجهة الرسمية عالية المستوى في TensorFlow.
الاستدعاء Callback
كائن يُستدعى في مراحل محددة من التدريب لتنفيذ إجراءات مثل الحفظ أو التوقف المبكر أو تعديل معدل التعلم.
التوقف المبكر Early Stopping
إيقاف التدريب عندما يتوقف تحسن مقياس التحقق لعدد من الحقب لتجنب فرط التخصيص.

الملخص

TensorFlow إطار تعلم عميق مفتوح المصدر من Google، وواجهته عالية المستوى Keras تتيح بناء النماذج بأسلوب Sequential أو الواجهة الوظيفية (Functional API) أو بالتوريث من keras.Model. يُجهَّز النموذج بـ compile (المحسّن والخسارة والمقاييس) ويُدرَّب بـ fit، مع استدعاءات (callbacks) مثل التوقف المبكر وحفظ أفضل نموذج. يتيح tf.data بناء خطوط إدخال فعالة، ويدعم النشر على الخوادم والأجهزة المحمولة والمتصفح.

أسئلة مراجعة

  1. ما وظيفة model.compile؟

    تحديد المحسّن ودالة الخسارة والمقاييس قبل التدريب.

  2. ما فائدة restore_best_weights في EarlyStopping؟

    إعادة أوزان الحقبة التي حققت أفضل قيمة تحقق بدلاً من أوزان آخر حقبة.

المصادر والمراجع

  1. TensorFlow — Tutorials
  2. TensorFlow — Quickstart for beginners
  3. Keras — Developer guides

إكمال الدرس