نموذج 2 نموذج


تبديل البيانات

قم دائمًا بتبديل البيانات قبل التدريب.

عندما يتم تدريب النموذج ، يتم تقسيم البيانات إلى مجموعات صغيرة (دفعات). ثم يتم تغذية كل دفعة إلى النموذج. يعد الخلط أمرًا مهمًا لمنع النموذج من الحصول على نفس البيانات مرة أخرى. في حالة استخدام نفس البيانات مرتين ، لن يتمكن النموذج من تعميم البيانات وإعطاء المخرجات الصحيحة. يعطي الخلط مجموعة أفضل من البيانات في كل دفعة.

مثال

tf.util.shuffle(data);

موتر TensorFlow

لاستخدام TensorFlow ، يجب تحويل بيانات الإدخال إلى بيانات موتر:

// Map x values to Tensor inputs
const inputs = values.map(obj => obj.x);
// Map y values to Tensor labels
const labels = values.map(obj => obj.y);

// Convert inputs and labels to 2d tensors
const inputTensor = tf.tensor2d(inputs, [inputs.length, 1]);
const labelTensor = tf.tensor2d(labels, [labels.length, 1]);

تطبيع البيانات

يجب تطبيع البيانات قبل استخدامها في الشبكة العصبية.

غالبًا ما يكون النطاق من 0 إلى 1 باستخدام min-max هو الأفضل للبيانات الرقمية:

const inputMin = inputTensor.min();
const inputMax = inputTensor.max();
const labelMin = labelTensor.min();
const labelMax = labelTensor.max();
const nmInputs = inputTensor.sub(inputMin).div(inputMax.sub(inputMin));
const nmLabels = labelTensor.sub(labelMin).div(labelMax.sub(labelMin));

نموذج Tensorflow

نموذج التعلم الآلي هو خوارزمية تنتج مخرجات من المدخلات.

يستخدم هذا المثال 3 أسطر لتعريف نموذج ML :

const model = tf.sequential();
model.add(tf.layers.dense({inputShape: [1], units: 1, useBias: true}));
model.add(tf.layers.dense({units: 1, useBias: true}));

نموذج ML المتسلسل

نموذج ثابت = tf.sequential () ؛ ينشئ نموذج ML تسلسلي .

في النموذج المتسلسل ، يتدفق المدخلات مباشرة إلى المخرجات. يمكن أن تحتوي النماذج الأخرى على مدخلات متعددة ومخرجات متعددة. التسلسل هو أسهل نموذج ML. يسمح لك ببناء نموذج طبقة بطبقة ، بأوزان تتوافق مع الطبقة التالية.

طبقات TensorFlow

model.add () يستخدم لإضافة طبقتين إلى النموذج.

tf.layer.dense هو نوع طبقة يعمل في معظم الحالات. يضاعف مدخلاته بمصفوفة الوزن ويضيف رقمًا (انحيازًا) إلى النتيجة.

الأشكال والوحدات

شكل الإدخال: [1] لأن لدينا مدخلات واحدة (س = غرف).

الوحدات: 1 تحدد حجم مصفوفة الوزن: 1 وزن لكل مدخل (قيمة x).


تجميع نموذج

قم بتجميع النموذج باستخدام مُحسِّن محدد ووظيفة الخسارة :

model.compile({loss: 'meanSquaredError', optimizer:'sgd'});

تم تعيين المترجم لاستخدام مُحسِّن sgd . إنه سهل الاستخدام وفعال للغاية.

meanSquaredError هي الوظيفة التي نريد استخدامها لمقارنة تنبؤات النموذج والقيم الحقيقية.