Path: blob/master/site/ja/model_optimization/guide/quantization/training_example.ipynb
25118 views
Copyright 2020 The TensorFlow Authors.
Keras の例による量子化認識トレーニング
概要
量子化認識トレーニングのエンドツーエンドの例へようこそ。
その他のページ
量子化認識トレーニングの紹介、および認識トレーニングを使用すべきかどうかの判定(サポート情報も含む)については、概要ページをご覧ください。
ユースケースに合った API を素早く特定するには(8 ビットのモデルの完全量子化を超えるユースケース)、総合ガイドをご覧ください。
要約
このチュートリアルでは、次について説明しています。
MNIST の
tf.keras
モデルを最初からトレーニングする。量子化認識トレーニング API を適用してモデルをファインチューニングし、精度を確認して量子化認識モデルをエクスポートする。
このモデルを使用して、TFLite バックエンドのために実際に量子化されたモデルを作成する。
TFLite および 1/4 のモデルの精度の永続性を確認する。モバイルでのレイテンシーのメリットを確認するには、TFLite アプリリポジトリ内の TFLite の例を試してみてください。
セットアップ
量子化認識トレーニングを使用せずに、MNIST のモデルをトレーニングする
量子化認識トレーニングを使用して、事前トレーニング済みモデルをクローンおよびファインチューニングする
モデルを定義する
量子化認識トレーニングをモデル全体に適用し、これをモデルの要約で確認します。すべてのレイヤーにプレフィックス "quant" が付いているはずです。
結果のモデルは量子化認識モデルですが、量子化はされていないので注意してください(例えば、重みは int8 ではなく float32 です)。次のセクションでは、量子化認識モデルから量子化モデルを作成する方法を示します。
総合ガイドでは、モデルの精度を改善するために、一部のレイヤーを量子化する方法をご覧いただけます。
モデルをベースラインに対してトレーニングおよび評価する
モデルを 1 エポックだけトレーニングした後のファインチューニングを実証するために、トレーニングデータのサブセットに対して、量子化認識トレーニングを使用してファインチューニングを行います。
この例では、ベースラインと比較し、量子化認識トレーニング後のテスト精度の損失は、最小限あるいはゼロです。
TFLite バックエンドの量子化モデルを作成する
この後に、重み int8 と活性化関数 uint8 を持つ、実際に量子化されたモデルが出来上がります。
TF から TFLite への精度の永続性を確認する
テストデータセットで TFLite モデルを評価するヘルパー関数を定義します。
量子化されたモデルを評価し、TensorFlow の精度が TFLite バックエンドに持続されていることを確認します。
量子化でモデルが 1/4 になることを確認する
浮動小数点数の TFLite モデルを作成して、量子化された TFLite モデルが 1/4 になっていることを確認します。
結論
このチュートリアルでは、TensorFlow Model Optimization Toolkit API を使用して量子化認識モデルを作成し、TFLite バックエンドの量子化モデルを作成する方法を紹介しました。
MNIST のモデルでは、精度の違いを最小限に抑えながらモデルサイズを 1/4 に圧縮できることを示しましたた。モバイルでのレイテンシーのメリットを確認するには、TFLite アプリリポジトリ内の TFLite の例を試してみてください。
この新しい機能をぜひお試しください。リソースが制限される環境でのデプロイにおいて、特に重要となります。