このページは Cloud Translation API によって翻訳されました。
Switch to English

重量クラスタリング

アームMLツーリングによって維持

この文書では、あなたはそれがあなたのユースケースにどのように適合するか判断するために重量のクラスタリングに概要を説明します。

概要

クラスタリング、または重量の共有は、展開のための利益につながる、モデルに固有の重み値の数を減らすことができます。 N個のクラスタにこれは、最初のグループそれぞれの層の重みは、その後、クラスタに属するすべての重みのためのクラスタの重心値を共有しています。

この手法は、モデルの圧縮を経て改善をもたらします。将来のフレームワークのサポートは限られたリソースで組み込みシステムに深い学習モデルを展開するための決定的な違いを作ることができ、メモリフットプリントの改善のロックを解除することができます。

私たちは、ビジョンや音声タスク間でクラスタリングを実験してきました。示されるように我々は、精度の損失を最小限に抑えモデル圧縮で5倍改善まで見てきた結果 、以下に提示します。

クラスタリングが減少し、バッチ正規層の前にコンボリューションし、緻密層の利益だけでなく、あたり軸訓練後の量子化と組み合わせて提供することをしてくださいノート。

APIの互換性マトリックス

ユーザーは、次のAPIでのクラスタリングを適用することができます。

  • モデル構築: tf.kerasのみシーケンシャルと機能モデルと
  • TensorFlowのバージョン:TFバージョンの1.1 1.14+および2.xの
    • tf.compat.v1 TF 2.xのパッケージとしてtf.compat.v2 TF 1.Xパッケージでは、サポートされていません。
  • TensorFlow実行モード:グラフと熱心両方

結果

画像分類

モデル元のクラスタ化
トップ-1精度(%) 圧縮.tfliteのサイズ(MB) コンフィギュレーションクラスターの# トップ-1精度(%) 圧縮.tfliteのサイズ(MB)
MobileNetV1 71.02 14.96
選択(最後の3つのConv2D層) 256、256、32 70.62 8.42
全(すべてConv2D層) 64 66.07 2.98
MobileNetV2 72.29 12.90
選択(最後の3つのConv2D層) 256、256、32 72.31 7.00
全(すべてConv2D層) 32 69.33 2.60

モデルは、訓練を受けたとImageNet上で試験しました。

キーワードスポッティング

モデル元のクラスタ化
トップ-1精度(%) 圧縮.tfliteのサイズ(MB) コンフィギュレーションクラスターの# トップ-1精度(%) 圧縮.tfliteのサイズ(MB)
DS-CNN-L 95.03 1.5 いっぱい 32 94.71 0.3

モデルは、訓練を受けたとSpeechCommandsのv0.02で試験しました。

  1. .h5ファイルにKerasモデルをシリアライズ
  2. 使用.tfliteに.h5ファイルに変換TFLiteConverter.from_keras_model_file()
  3. ジップに.tfliteファイルを圧縮

加えて、 Kerasの例では体重のクラスタリング 、以下の例を参照してください。

  • MNIST手書き数字分類データセットに訓練されたCNNモデルの重みをクラスタ化: コード

重量クラスタリングの実装は、 ディープ圧縮に基づいています:圧縮ディープニューラルネットワークとの剪定、訓練を受けた量子化とハフマン符号化 訓練を受けた量子化と重量の共有という章3を参照してください。