جارٍ تحميل الدرس...
في نافذة الطباعة اختر «حفظ كملف PDF» كوجهة.
تدريب نموذج انحدار خطي كامل باستخدام TensorFlow
تحميل مجموعة البيانات
بناء نموذج انحدار خطي متعدد
تقييم أداء النموذج
b=1.5، w1=2، w2=5X1, X2 مسحوبتان بشكل منتظم (Uniform) من [0, 10]x1 = tf.random.uniform([150], minval=0, maxval=10)
x2 = tf.random.uniform([150], minval=0, maxval=10)
y = 1.5 + 2.0 * x1 + 5.0 * x2
dataset = tf.stack([y, x1, x2], axis=1)b، w1، w2 فقط من بيانات (x1, x2, y) المولدةdataset_shuffled = tf.random.shuffle(dataset, seed=22)
train_data, test_data = dataset_shuffled[:125], dataset_shuffled[125:]
x_train, y_train = train_data[:, 1:], train_data[:, 0]125 صفا للتدريب، و25 صفا للاختبار (حوالي 17% محجوزة)tf.Module مع @tf.function يحولان النموذج إلى رسم بياني قابل لإعادة الاستخدامclass LinearRegression(tf.Module):
@tf.function
def __call__(self, x):
if not self.built:
self.w = tf.Variable(tf.random.uniform([x.shape[-1], 1]))
self.b = tf.Variable(tf.random.uniform([]))
self.built = True
return tf.squeeze(tf.matmul(x, self.w) + self.b, axis=1)def mse_loss(y_pred, y):
return tf.reduce_mean(tf.square(y_pred - y))w وb لتقليل هذه الخسارة إلى الحد الأدنىtf.data.Dataset يتعامل مع الخلط والتقسيم إلى دفعات بكفاءةtrain_dataset = tf.data.Dataset.from_tensor_slices((x_train, y_train))
train_dataset = train_dataset.shuffle(buffer_size=125).batch(32)32 عنصرا (مع دفعة أخيرة أصغر من 29 عنصرا)mse_losstf.GradientTapev.assign_sub(learning_rate * g)for epoch in range(epochs):
for x_batch, y_batch in train_dataset:
with tf.GradientTape() as tape:
y_pred = lin_reg(x_batch)
loss = mse_loss(y_pred, y_batch)
grads = tape.gradient(loss, lin_reg.variables)
for g, v in zip(grads, lin_reg.variables):
v.assign_sub(learning_rate * g)10 حقب: من 299.5 إلى 0.078100 حقبة: خسارة التدريب النهائية 0.014، وخسارة الاختبار النهائية 0.012b=1.5، w1=2.0، w2=5.0؟| المعامل | القيمة الحقيقية | القيمة المستعادة |
|---|---|---|
| b | 1.5 | 1.18 |
| w1 | 2.0 | 2.03 |
| w2 | 5.0 | 5.02 |
tf.GradientTape مع assign_sub(learning_rate * gradient) هي خطوة التدريب الأساسيةMahmoud Abas|مراجعة تعلّم الآلة ومثال على الانحدار التدريجي (Gradient Descent)