يمكنك الرد على دعوة الحضور لحضور حدث TensorFlow Everywhere المحلي اليوم!
ترجمت واجهة Cloud Translation API‏ هذه الصفحة.
Switch to English

استيراد نموذج Keras إلى TensorFlow.js

يمكن حفظ نماذج Keras (التي يتم إنشاؤها عادةً عبر Python API) بأحد التنسيقات المتعددة . يمكن تحويل تنسيق "النموذج بالكامل" إلى تنسيق طبقات TensorFlow.js ، والذي يمكن تحميله مباشرة في TensorFlow.js للاستدلال أو لمزيد من التدريب.

تنسيق طبقات TensorFlow.js الهدف عبارة عن دليل يحتوي على ملف model.json ومجموعة من ملفات الوزن المُقسمة بتنسيق ثنائي. يحتوي ملف model.json على طوبولوجيا النموذج (المعروف أيضًا باسم "الهندسة المعمارية" أو "الرسم البياني": وصف للطبقات وكيفية توصيلها) وبيان لملفات الوزن.

المتطلبات

يتطلب إجراء التحويل بيئة بايثون ؛ قد ترغب في الاحتفاظ بواحد معزول باستخدام pipenv أو virtualenv . لتثبيت المحول ، استخدم pip install tensorflowjs .

استيراد نموذج Keras إلى TensorFlow.js عملية من خطوتين. أولاً ، قم بتحويل نموذج Keras الحالي إلى تنسيق TF.js Layers ، ثم قم بتحميله في TensorFlow.js.

الخطوة 1. تحويل نموذج Keras الحالي إلى تنسيق طبقات TF.js

عادةً ما يتم حفظ نماذج Keras عبر model.save(filepath) ، والذي ينتج ملف HDF5 واحد (.h5) يحتوي على كل من طوبولوجيا النموذج والأوزان. لتحويل مثل هذا الملف إلى تنسيق طبقات TF.js ، قم بتشغيل الأمر التالي ، حيث يكون path/to/my_model.h5 هو ملف Keras .h5 المصدر path/to/tfjs_target_dir هو دليل الإخراج الهدف لملفات TF.js:

# bash

tensorflowjs_converter --input_format keras \
                       path/to/my_model.h5 \
                       path/to/tfjs_target_dir

بديل: استخدم Python API للتصدير مباشرة إلى تنسيق TF.js Layers

إذا كان لديك نموذج Keras في Python ، فيمكنك تصديره مباشرةً إلى تنسيق TensorFlow.js Layers كما يلي:

# Python

import tensorflowjs as tfjs

def train(...):
    model = keras.models.Sequential()   # for example
    ...
    model.compile(...)
    model.fit(...)
    tfjs.converters.save_keras_model(model, tfjs_target_dir)

الخطوة 2: قم بتحميل النموذج في TensorFlow.js

استخدم خادم ويب لخدمة ملفات النموذج المحولة التي أنشأتها في الخطوة 1. لاحظ أنك قد تحتاج إلى تكوين الخادم الخاص بك للسماح بمشاركة الموارد عبر الأصل (CORS) ، للسماح بجلب الملفات في JavaScript.

ثم قم بتحميل النموذج في TensorFlow.js من خلال توفير عنوان URL لملف model.json:

// JavaScript

import * as tf from '@tensorflow/tfjs';

const model = await tf.loadLayersModel('https://foo.bar/tfjs_artifacts/model.json');

أصبح النموذج الآن جاهزًا للاستدلال أو التقييم أو إعادة التدريب. على سبيل المثال ، يمكن استخدام النموذج الذي تم تحميله فورًا لعمل توقع:

// JavaScript

const example = tf.fromPixels(webcamElement);  // for example
const prediction = model.predict(example);

تتبع العديد من أمثلة TensorFlow.js هذا الأسلوب ، باستخدام نماذج مُدربة مسبقًا تم تحويلها واستضافتها على Google Cloud Storage.

لاحظ أنك تشير إلى النموذج بأكمله باستخدام اسم ملف model.json . loadModel(...) model.json ، ثم يقوم بإجراء طلبات HTTP (S) إضافية للحصول على ملفات الوزن المُقسمة المشار إليها في بيان الوزن model.json . يسمح هذا الأسلوب بالتخزين المؤقت لجميع هذه الملفات بواسطة المتصفح (وربما عن طريق خوادم التخزين المؤقت الإضافية على الإنترنت) ، لأن model.json النموذج model.json والوزن أصغر من الحد المعتاد لحجم ملف ذاكرة التخزين المؤقت. وبالتالي من المرجح أن يتم تحميل النموذج بسرعة أكبر في المناسبات اللاحقة.

الميزات المعتمدة

تدعم طبقات TensorFlow.js حاليًا نماذج Keras فقط باستخدام تركيبات Keras القياسية. لا يمكن استيراد النماذج التي تستخدم عمليات أو طبقات غير مدعومة - مثل الطبقات المخصصة أو طبقات Lambda أو الخسائر المخصصة أو المقاييس المخصصة - تلقائيًا ، لأنها تعتمد على كود Python الذي لا يمكن ترجمته بشكل موثوق إلى JavaScript.