Nhập mô hình Keras vào TensorFlow.js

Mô hình Keras (thường được tạo ra thông qua API Python) có thể được lưu trong một trong một số định dạng . Định dạng "toàn bộ mô hình" có thể được chuyển đổi thành định dạng Lớp TensorFlow.js, có thể được tải trực tiếp vào TensorFlow.js để suy luận hoặc đào tạo thêm.

Các TensorFlow.js mục tiêu định dạng Layers là một thư mục có chứa một model.json tập tin và một bộ các tập tin cân sharded ở định dạng nhị phân. Các model.json tập tin chứa cả mô hình topo (aka "kiến trúc" hay "đồ thị": một mô tả của các lớp và làm thế nào chúng được kết nối) và một biểu hiện của các tập tin cân.

Yêu cầu

Thủ tục chuyển đổi yêu cầu môi trường Python; bạn có thể muốn giữ một cô lập một cách sử dụng pipenv hoặc virtualenv . Để cài đặt bộ chuyển đổi, sử dụng pip install tensorflowjs .

Nhập một mô hình Keras vào TensorFlow.js là một quá trình gồm hai bước. Đầu tiên, chuyển đổi mô hình Keras hiện có sang định dạng Lớp TF.js, rồi tải nó vào TensorFlow.js.

Bước 1. Chuyển đổi mô hình Keras hiện có sang định dạng Lớp TF.js

Mô hình Keras thường được lưu thông qua model.save(filepath) , trong đó sản xuất một tập tin HDF5 đơn (.h5) chứa cả hai topo mô hình và trọng lượng. Để chuyển đổi một tập tin sang định dạng TF.js Layers, hãy chạy lệnh sau đây, nơi path/to/my_model.h5 là nguồn Keras .h5 tập tin và path/to/tfjs_target_dir là thư mục đầu ra mục tiêu cho các tập tin TF.js:

# bash

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

Thay thế: Sử dụng API Python để xuất trực tiếp sang định dạng Lớp TF.js

Nếu bạn có mô hình Keras bằng Python, bạn có thể xuất trực tiếp mô hình đó sang định dạng TensorFlow.js Layers như sau:

# 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)

Bước 2: Tải mô hình vào TensorFlow.js

Sử dụng một máy chủ web để phục vụ các tập tin mô hình chuyển đổi bạn đã tạo ở Bước 1. Lưu ý rằng bạn có thể cần phải cấu hình máy chủ của bạn để cho phép Cross-Origin Resource Sharing (CORS) , để cho phép lấy các tập tin trong JavaScript.

Sau đó tải mô hình vào TensorFlow.js bằng cách cung cấp URL cho tệp model.json:

// JavaScript

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

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

Bây giờ mô hình đã sẵn sàng để suy luận, đánh giá hoặc đào tạo lại. Ví dụ, mô hình đã tải có thể được sử dụng ngay lập tức để đưa ra dự đoán:

// JavaScript

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

Nhiều người trong số các TensorFlow.js Ví dụ áp dụng cách này, sử dụng mô hình pretrained đã được chuyển đổi và lưu trữ trên Google Cloud Storage.

Lưu ý rằng bạn tham khảo toàn bộ mô hình bằng cách sử dụng model.json filename. loadModel(...) lấy về model.json , và sau đó làm thêm HTTP (S) yêu cầu để có được các tập tin cân sharded tham chiếu trong model.json manifest cân. Cách tiếp cận này cho phép tất cả các tập tin được lưu trữ bởi trình duyệt (và có lẽ bằng cách thêm các máy chủ bộ nhớ đệm trên internet), vì model.json và mảnh trọng lượng là mỗi nhỏ hơn giới hạn kích thước tập tin bộ nhớ cache điển hình. Do đó, một mô hình có khả năng tải nhanh hơn trong những lần tiếp theo.

Các tính năng được hỗ trợ

TensorFlow.js Lớp hiện chỉ hỗ trợ các mô hình Keras sử dụng cấu trúc Keras tiêu chuẩn. Không thể tự động nhập các mô hình sử dụng các hoạt động hoặc lớp không được hỗ trợ — ví dụ: lớp tùy chỉnh, lớp Lambda, tổn thất tùy chỉnh hoặc số liệu tùy chỉnh — vì chúng phụ thuộc vào mã Python không thể dịch sang JavaScript một cách đáng tin cậy.