דף זה תורגם על ידי Cloud Translation API.
Switch to English

ייבוא ​​מודל Keras ל- TensorFlow.js

מודלים של Keras (שנוצרו בדרך כלל באמצעות ה- Python API) עשויים להישמר באחד מכמה פורמטים . ניתן להמיר את הפורמט "כל המודל" לפורמט שכבות TensorFlow.js, שניתן לטעון אותו ישירות ל- TensorFlow.js לצורך הסקה או הכשרה נוספת.

פורמט היעד TensorFlow.js Layers הוא ספריה המכילה קובץ model.json וסט קבצי משקל משובץ בפורמט בינארי. הקובץ model.json מכיל גם את טופולוגיית המודל (המכונה גם "ארכיטקטורה" או "גרף": תיאור של השכבות ואופן model.json ) וגם מניפסט של קבצי המשקל.

דרישות

הליך ההמרה דורש סביבת פייתון; ייתכן שתרצה לשמור על מבודד באמצעות pipenv או virtualenv . כדי להתקין את הממיר, השתמש ב- pip install tensorflowjs .

ייבוא ​​מודל Keras ל- TensorFlow.js הוא תהליך דו שלבי. ראשית, המירו מודל Keras קיים לפורמט שכבות TF.js ואז טען אותו לתוך 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

אם יש לך מודל Keras בפייתון, אתה יכול לייצא אותו ישירות לפורמט שכבות TensorFlow.js באופן הבא:

# 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 ואז model.json בקשות HTTP (S) נוספות לקבלת קבצי המשקל הרוסקים model.json במניפסט המשקל model.json . גישה זו מאפשרת לשמור את כל הקבצים הללו על ידי הדפדפן (ואולי על ידי שרתי מטמון נוספים באינטרנט), מכיוון model.json ושברי המשקל קטנים כל אחד ממגבלת גודל הקובץ המטמון. לפיכך סביר להניח שהדגם נטען מהר יותר בהזדמנויות הבאות.

תכונות נתמכות

שכבות TensorFlow.js תומכות כרגע רק במודלים של Keras המשתמשים במבנים Keras סטנדרטיים. לא ניתן לייבא אוטומטית מודלים המשתמשים באופציות או בשכבות שאינן נתמכות - למשל שכבות מותאמות אישית, שכבות למבדה, הפסדים מותאמים אישית או מדדים מותאמים אישית, מכיוון שהם תלויים בקוד פייתון שלא ניתן לתרגם באופן אמין ל- JavaScript.