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