تاریخ را ذخیره کنید! Google I / O 18-20 مه بازمی گردد اکنون ثبت نام کنید
این صفحه به‌وسیله ‏Cloud Translation API‏ ترجمه شده است.
Switch to English

وارد کردن مدل Keras به TensorFlow.js

مدلهای Keras (معمولاً از طریق Python API ایجاد می شوند) ممکن است در یکی از چندین قالب ذخیره شوند . قالب "کل مدل" را می توان به قالب لایه های TensorFlow.js تبدیل کرد ، که برای استنباط یا آموزش بیشتر می تواند مستقیماً در TensorFlow.js بارگیری شود.

قالب model.json Layers یک دایرکتوری است که شامل یک پرونده model.json و مجموعه ای از پرونده های وزن model.json شده در قالب باینری است. پرونده model.json هم شامل توپولوژی مدل (با نام مستعار "معماری" یا "نمودار": توصیف لایه ها و نحوه اتصال آنها) و هم مانیفست پرونده های وزنی است.

الزامات

روش تبدیل به یک محیط پایتون نیاز دارد. ممکن است بخواهید با استفاده از pipenv یا virtualenv یک مورد جداگانه را نگه دارید. برای نصب مبدل ، از pip install tensorflowjs استفاده 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

جایگزین: برای صادرات مستقیم به قالب لایه های TF.js از API پایتون استفاده کنید

اگر مدل 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 ، از یک وب سرور استفاده کنید. توجه داشته باشید که برای واکشی فایلها در JavaScript ، ممکن است لازم باشد سرور خود را به گونه ای تنظیم کنید که به اشتراک گذاری منابع Cross-Origin (CORS) اجازه دهد.

سپس با ارائه URL در فایل model.json ، مدل را در TensorFlow.js بارگیری کنید:

// 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 کند. این روش اجازه می دهد تا همه این پرونده ها توسط مرورگر (و شاید توسط سرورهای ذخیره اضافی در اینترنت) model.json ، زیرا model.json و تکه های وزنی هر کدام کوچکتر از حد معمول اندازه پرونده پنهان هستند. بنابراین یک مدل احتمالاً در موارد بعدی با سرعت بیشتری بارگیری می شود.

ویژگی های پشتیبانی شده

TensorFlow.js لایه ها در حال حاضر فقط از مدل های Keras با استفاده از سازه های استاندارد Keras پشتیبانی می کنند. مدلهایی که از عملیات یا لایههای پشتیبانی نشده استفاده می کنند - به عنوان مثال لایههای سفارشی ، لایههای Lambda ، ضررهای شخصی یا معیارهای سفارشی - نمی توانند به طور خودکار وارد شوند ، زیرا به کد پایتون بستگی دارند که قابل اعتماد به JavaScript نیست.