ייבוא ​​דגם Keras לתוך TensorFlow.js

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

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

דרישות

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

ייבוא ​​דגם Keras לתוך TensorFlow.js הוא תהליך בן שני שלבים. ראשית, המר דגם קיים של Keras לפורמט TF.js Layers, ולאחר מכן טען אותו אל TensorFlow.js.

שלב 1. המר דגם קיים של Keras לפורמט TF.js Layers

מודלי 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

חלופה: השתמש ב-API של Python כדי לייצא ישירות לפורמט 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 על ידי מתן כתובת האתר לקובץ 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 לקחת את הגישה הזו, באמצעות מודלים pretrained שהומרו ולהתארח בו Google Cloud Storage.

שים לב שאתה מתייחס המודל כולו באמצעות model.json filename. loadModel(...) מביא model.json , ולאחר מכן עושה HTTP נוספת (S) בקשות לקבל את קבצי משקל sharded מפנים model.json מניפסט המשקל. גישה זו מאפשרת את כול הקבצים הללו כדי להיות ששמור בדפדפן (ואולי על ידי שירת במטמון נוסף באינטרנט), משום model.json ואת שברי המשקל הם כול אחד מהם קטנים מ מגבלת גודל קובץ מטמון הטיפוסית. לפיכך דגם עשוי להיטען מהר יותר בהזדמנויות הבאות.

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

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