見出し画像

TensorFlow Lite入門 / TensorFlow Liteの概要

1. TensorFlow Liteとは

TensorFlow Lite」は、モバイル端末上でより軽量でより高速に推論できるように最適化された、TensorFlow モデルのモバイル専用フォーマットおよび実行環境です。Googleが提供するツールにより、既存のモデルを「TensorFlow Liteモデル」(*.tflite)に変換することで、iOS やAndroid などの端末で推論モデルを利用できるようになります。

ただし「TensorFlow Lite」は、現在のところ限られた演算子しかサポートしていないため、すべてのモデルが動作するわけではありません。

2. 事前に訓練されたモデル

事前に訓練されたモデルとして、以下のモデルが提供されています。

画像分類
物体検出
スマートリプライ
ポーズ推定
セグメンテーション

3. TensorFlow Liteコンバータ

TensorFlow Liteのコンバータ」は 訓練済みモデルを「TensorFlow Liteモデル」に変換するツールです。このツールで、「モデルの最適化」を適用することもできます。

以下は、TensorFlowの「SavedModelモデル」を「TensorFlow Liteモデル」に変換するコードです。

import tensorflow as tf

converter = tf.lite.TFLiteConverter.from_saved_model(saved_model_dir)
tflite_model = converter.convert()
open("converted_model.tflite", "wb").write(tflite_model)

4. TensorFlow Liteモデルに変換できるファイル型式

TensorFlow Liteコンバータは、以下のファイル型式から「TensorFlow Liteモデル」に変換できます。

・TFLiteConverter.from_saved_model(): SavedModelモデル
・TFLiteConverter.from_keras_model(): tf.kerasモデル
・TFLiteConverter.from_concrete_functions(): Concrete関数

5. TensorFlow Liteモデルの最適化

「TensorFlow Lite」は、精度への影響を最小限に抑えながら、最適化(小バイナリ化)するための機能も提供します。モデル最適化の目的は、特定のデバイスで、パフォーマンス、モデルサイズを理想的なバランスに調整することです。

以下のパフォーマンスのベストプラクティスの情報が参考になります。

Performance best practices  |  TensorFlow Lite  |  TensorFlow

「TensorFlow Liteモデル」変換時に「量子化」を行うことで、モデルのサイズと推論時間の両方を減らすことができます。多くのモデルでは、精度の低下は最小限です。最適化したモデルを「量子化モデル」、通常のモデルを「浮動少数モデル」と呼びます。

・量子化モデル(byte)
・浮動少数モデル(float)

量子化したい時は、次のようにoptimizationsを指定します。

import tensorflow as tf

converter = tf.lite.TFLiteConverter.from_saved_model(saved_model_dir)
converter.optimizations = [tf.lite.Optimize.OPTIMIZE_FOR_SIZE]
tflite_quant_model = converter.convert()
open("converted_model.tflite", "wb").write(tflite_quantized_model)



この記事が気に入ったらサポートをしてみませんか?