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

Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.

Các mô hình Keras (thường được tạo thông qua API Python) có thể được lưu ở một trong số các đị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.

Định dạng TensorFlow.js Layers đích là một thư mục chứa tệp model.json và một tập hợp các tệp trọng số được phân nhỏ ở định dạng nhị phân. Tệp model.json chứa cả cấu trúc liên kết mô hình (còn gọi là "kiến trúc" hoặc "đồ thị": mô tả các lớp và cách chúng được kết nối) và bản kê khai của các tệp trọng số.

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ái riêng biệt bằng cách sử dụng pipenv hoặc virtualenv . Để cài đặt bộ chuyển đổi, hãy 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

Các mô hình Keras thường được lưu qua model.save(filepath) , tệp này tạo ra một tệp HDF5 (.h5) duy nhất chứa cả cấu trúc liên kết mô hình và trọng số. Để chuyển đổi tệp như vậy sang định dạng Lớp TF.js, hãy chạy lệnh sau, trong đó path/to/my_model.h5 là tệp Keras .h5 nguồn và path/to/tfjs_target_dir là thư mục đầu ra đích cho tệp 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ột mô hình Keras bằng Python, bạn có thể xuất nó trực tiếp 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áy chủ web để cung cấp các tệp mô hình đã chuyển đổi mà bạn đã tạo ở Bước 1. Lưu ý rằng bạn có thể cần phải định cấu hình máy chủ của mình để cho phép Chia sẻ Tài nguyên Nhiều Nguồn gốc (CORS) , để cho phép tìm nạp các tệp 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 Ví dụ về TensorFlow.js áp dụng phương pháp này, sử dụng các mô hình đào tạo trước đã được chuyển đổi và lưu trữ trên Google Cloud Storage.

Lưu ý rằng bạn tham chiếu đến toàn bộ mô hình bằng cách sử dụng tên tệp model.json . loadModel(...) tìm nạp model.json , sau đó thực hiện các yêu cầu HTTP (S) bổ sung để lấy các tệp trọng lượng phân đoạn được tham chiếu trong tệp kê khai trọng lượng model.json . Cách tiếp cận này cho phép tất cả các tệp này được trình duyệt lưu vào bộ nhớ đệm (và có thể bằng các máy chủ lưu trữ bổ sung trên internet), vì model.json và các phân đoạn trọng số đều nhỏ hơn giới hạn kích thước tệp bộ đệm ẩn thông thường. Do đó, một mô hình có thể 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 chỉ số 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.