ホーム » Keras » TensorFlow.js : チュートリアル : Keras モデルを TensorFlow.js にインポートする

TensorFlow.js : チュートリアル : Keras モデルを TensorFlow.js にインポートする


TensorFlow.js : チュートリアル : Keras モデルを TensorFlow.js にインポートする (翻訳/解説)

作成 : (株)クラスキャット セールスインフォメーション
日時 : 04/11/2018

* 本ページは、TensorFlow.js サイトの Tutorials – Importing a Keras model into TensorFlow.js を翻訳した上で
適宜、補足説明したものです:

* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。

 

Keras モデル (典型的には Python API を通して作成されます) は 幾つかのフォーマットの一つ でセーブされます。”whole model” フォーマットは TensorFlow.js 層フォーマットに変換可能で、これは推論や更なる訓練のために TensorFlow.js に直接ロードできます。

ターゲット TensorFlow.js 層フォーマットは model.json ファイルとバイナリ形式のシャードされた重みファイルのセットを含むディレクトリです。model.json ファイルはモデル・トポロジー (aka “architecture” または “graph” : 層とそれらがどのように接続されているかの記述) と重みファイルのマニフェストの両者を含みます。

 

Requirements

変換手続きは Python 環境を必要とします ; 貴方は pipenvvirtualenv を使用して隔離された一つを保持することを望むかもしれません。変換器 (= converter) をインストールするためには pip install tensorflowjs を使用してください。

Keras モデルを TensorFlow.js にインポートすることは 2 段階のプロセスです。最初に、既存の Keras モデルを TF.js 層フォーマットに変換し、それから TensorFlow.js にロードします。

 

Step 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 ファイルのためのターゲット出力ディレクトリです :

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

 

Alternative : TF.js 層フォーマットに直接エクスポートするために Python API を使用する

もし貴方が Keras モデルを Python で持つのであれば、それを次のように 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)

 

Step 2: モデルを TensorFlow.js にロードする

Step 1 で生成した変換されたモデルファイルをサービス提供するためには web サーバを使用します。JavaScript でファイルを取得することを可能にするために、Cross-Origin リソース共有 (Resource Sharing, CORS) が有効になるように貴方のサーバを構成する必要があるかもしれないことに注意してください。

それから model.json ファイルへの URL を提供することによりモデルを TensorFlow.js にロードします :

// JavaScript

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

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

今はモデルは推論、評価、あるいは再訓練のために準備ができています。例えば、ロードされたモデルは予測を行なうために直ちに利用できます :

// JavaScript

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

TensorFlow.js Examples の多くはこのアプローチを取り、変換されて Google Cloud Storage 上でホストされる事前訓練されたモデルを使用します。

model.json filepath を使用してモデル全体を参照することに注意してください。loadModel(…) は model.json を取得してそれから model.json weight マニフェストで参照されるシャードされた重みファイルを得るために追加の HTTP(S) リクエストを行ないます。このアプローチはこれらのファイルにブラウザ (そして多分インターネット上の追加のキャッシング・サーバ) によりキャッシュされることを可能にします、何故ならば model.json と重みシャードは典型的なキャッシュ・ファイルサイズ制限よりもそれぞれより小さいからです。こうして次の機会にはモデルは多分より迅速にロードされるでしょう。

 

サポートされる特徴

現在 TensorFlow.js 層は標準的な Keras 構成部品を使用する Keras モデルをサポートするだけです。サポートされていない ops や 層 — e.g. カスタム層、Lambda 層、カスタム損失、あるいはカスタム・メトリクス — を使用するモデルは自動的にはインポートできません、何故ならばそれらは確実には JavaScript に翻訳できない Python コードに依存するからです。

 

以上



AI導入支援 #2 ウェビナー

スモールスタートを可能としたAI導入支援   Vol.2
[無料 WEB セミナー] [詳細]
「画像認識 AI PoC スターターパック」の紹介
既に AI 技術を実ビジネスで活用し、成果を上げている日本企業も多く存在しており、競争優位なビジネスを展開しております。
しかしながら AI を導入したくとも PoC (概念実証) だけでも高額な費用がかかり取組めていない企業も少なくないようです。A I導入時には欠かせない PoC を手軽にしかも短期間で認知度を確認可能とするサービの紹介と共に、AI 技術の特性と具体的な導入プロセスに加え運用時のポイントについても解説いたします。
日時:2021年10月13日(水)
会場:WEBセミナー
共催:クラスキャット、日本FLOW(株)
後援:働き方改革推進コンソーシアム
参加費: 無料 (事前登録制)
人工知能開発支援
◆ クラスキャットは 人工知能研究開発支援 サービスを提供しています :
  • テクニカルコンサルティングサービス
  • 実証実験 (プロトタイプ構築)
  • アプリケーションへの実装
  • 人工知能研修サービス
◆ お問合せ先 ◆
(株)クラスキャット
セールス・インフォメーション
E-Mail:sales-info@classcat.com