جارٍ تحميل الدرس...
في نافذة الطباعة اختر «حفظ كملف PDF» كوجهة.
Sequential)بناء مكدس بسيط من الطبقات، وفحصه، وتدريبه
Sequential مكدسا بسيطا من الطبقات حيث لكل طبقة تنسور مدخل واحد وتنسور مخرج واحد بالضبطmodel = keras.Sequential([
keras.Input(shape=(3, 1)),
layers.Dense(2, activation="relu", name="layer1"),
layers.Dense(3, activation="relu", name="layer2"),
layers.Dense(4, name="layer3"),
])# تمرير قائمة من الطبقات للباني (Constructor)
model = keras.Sequential([
layers.Dense(2, activation="relu"),
layers.Dense(3, activation="relu"),
layers.Dense(4),
])
# أو البناء تدريجيا
model = keras.Sequential()
model.add(layers.Dense(2, activation="relu"))
model.add(layers.Dense(3, activation="relu"))
model.add(layers.Dense(4))
model.pop() # يحذف الطبقة الأخيرة - يتصرف كقائمة من الطبقاتmodel.layersname، مفيد لتوسيم رسوم TensorBoard البيانيةlayer = layers.Dense(3)
layer.weights # [] - فارغة
x = ops.ones((1, 4))
y = layer(x)
layer.weights # الآن لديها أوزان: بشكل (4, 3) و(3,)model.weights فارغة حتى يرى النموذج بيانات لأول مرةmodel = keras.Sequential()
model.add(keras.Input(shape=(4,)))
model.add(layers.Dense(2, activation="relu"))
model.summary() # تعمل فورا - النموذج مبني بالفعل ("built")Input نفسه ليس جزءا من model.layers (فهو ليس طبقة)model.summary()Model: "sequential"
Layer (type) Output Shape Param #
dense (Dense) (1, 2) 10
dense_1 (Dense) (1, 3) 9
dense_2 (Dense) (1, 4) 16
Total params: 35model = keras.Sequential()
model.add(keras.Input(shape=(784,)))
model.add(layers.Dense(64, activation="relu"))
model.add(layers.Dense(64, activation="relu"))
model.add(layers.Dense(10, activation="softmax"))
(x_train, y_train), (x_test, y_test) = keras.datasets.mnist.load_data()
x_train = x_train.reshape(60000, 784).astype("float32") / 255
x_test = x_test.reshape(10000, 784).astype("float32") / 255
# حجز 10,000 عينة للتحقق (Validation)
x_val, y_val = x_train[-10000:], y_train[-10000:]
x_train, y_train = x_train[:-10000], y_train[:-10000]التدريب
التحقق
مجموعة محجوزة (Validation)
التقييم
بيانات الاختبار (Test)
compile(): دالة الخسارة، المحسن، المقاييسmodel.compile(
optimizer=keras.optimizers.RMSprop(learning_rate=1e-3),
loss=keras.losses.SparseCategoricalCrossentropy(),
metrics=[keras.metrics.SparseCategoricalAccuracy()],
)
# اختصار بمعرفات نصية للإعدادات الافتراضية
model.compile(optimizer="rmsprop",
loss="sparse_categorical_crossentropy",
metrics=["sparse_categorical_accuracy"])| دالة الخسارة | متى تستخدم |
|---|---|
SparseCategoricalCrossentropy / SparseCategoricalAccuracy | تصنيفات صحيحة (0, 1, 2...) |
categorical_crossentropy | تصنيفات ترميز أحادي (one-hot) |
binary_crossentropy | تصنيف ثنائي |
metrics قائمة: يمكن للنموذج تتبع أي عدد من المقاييسfit(): تدريب النموذجhistory = model.fit(
x_train, y_train,
batch_size=64,
epochs=2,
validation_data=(x_val, y_val),
)batch_size، وتتكرر عبر كامل مجموعة البيانات لعدد epochs من المرات| المعامل | الوصف |
|---|---|
x / y | البيانات والتصنيفات |
shuffle | خلط البيانات قبل كل حقبة (الافتراضي True) |
verbose | 0 صامت، 1 شريط تقدم، 2 سطر واحد لكل حقبة |
history يسجل قيم الخسارة والمقاييس عند كل حقبة (epoch)evaluate() وpredict()results = model.evaluate(x_test, y_test, batch_size=128)
print("test loss, test acc:", results)
predictions = model.predict(x_test[:3]) # احتمالات من الطبقة الأخيرة
print("predictions shape:", predictions.shape)evaluate()predict()دراسة ذاتية
Functional API)Sequential: تدعم البنية غير الخطية، ومشاركة الطبقات، ومدخلات/مخرجات متعددةمدخل
متجه 784 بعدا
Dense(64)
relu
Dense(64)
relu
Dense(10)
توزيع احتمالي على 10 فئات
inputs = keras.Input(shape=(784,))
x = layers.Dense(64, activation="relu")(inputs)
x = layers.Dense(64, activation="relu")(x)
outputs = layers.Dense(10)(x)
model = keras.Model(inputs=inputs, outputs=outputs, name="mnist_model")keras.utils.plot_model(model, "my_model.png", show_shapes=True) يصور الرسم البيانيSequential تلائم مكدسا بسيطا من الطبقات بمدخل/مخرج واحد؛ استخدم الواجهة الوظيفية للتفرع أو المشاركة أو البنى متعددة المدخلات/المخرجاتInput(shape=...) مسبقا للبناء الفوري وتفعيل summary()compile() تربط محسنا ودالة خسارة ومقاييس للمراقبة؛ طابق دالة الخسارة مع شكل تصنيفاتك (صحيح متناثر مقابل ترميز أحادي مقابل ثنائي)fit() تدرب عبر دفعات وحقب، مع التحقق اختياريا في كل حقبة؛ history يسجل منحنى التدريبevaluate() تقيس الأداء النهائي على بيانات محجوزة؛ predict() ترجع مخرجات النموذج الخام لمدخلات جديدةSequential التعبير عنهاMahmoud Abas|نموذج Keras التسلسلي (Sequential)