Keras(h5)ファイルを取得しました。 tfliteに変換する必要がありますか?私は調査しました、最初にh5-> pb-> tfliteを経由する必要があります(h5-tfliteが時々問題を起こすため)
from tensorflow.contrib import lite
converter = lite.TFLiteConverter.from_keras_model_file( 'model.h5')
tfmodel = converter.convert()
open ("model.tflite" , "wb") .write(tfmodel)
TFLiteConverterを使用して、.h5ファイルを.tfliteファイルに直接変換できます。 これはWindowsでは機能しません。
Windowsの場合、この Google Colabノートブック を使用して変換します。 .h5ファイルをアップロードすると、.tfliteファイルに変換されます。
自分で試してみたい場合は、以下に従ってください。
コードセルを作成し、このコードを挿入します。
from tensorflow.contrib import lite
converter = lite.TFLiteConverter.from_keras_model_file( 'model.h5' ) # Your model's name
model = converter.convert()
file = open( 'model.tflite' , 'wb' )
file.write( model )
セルを実行します。 model.tfliteファイルを取得します。ファイルを右クリックして、「ダウンロード」オプションを選択します。
このツールを使用してTensorflowに変換します。 Keras to Tensorflow Converter
次に、3つのコードスニペットのいずれか(TFファイルの保存方法に応じて)を使用して、そのファイルをTF-Liteに変換します。
# Converting a GraphDef from session.
converter = lite.TFLiteConverter.from_session(sess, in_tensors, out_tensors)
tflite_model = converter.convert()
open("converted_model.tflite", "wb").write(tflite_model)
# Converting a GraphDef from file.
converter = lite.TFLiteConverter.from_frozen_graph(
graph_def_file, input_arrays, output_arrays)
tflite_model = converter.convert()
open("converted_model.tflite", "wb").write(tflite_model)
# Converting a SavedModel.
converter = lite.TFLiteConverter.from_saved_model(saved_model_dir)
tflite_model = converter.convert()
TensorflowとKerasの特定のバージョンのみが、すべてのOSで適切に動作します。 tocoコマンドラインも試しましたが、問題もあります。 tensorflow == 1.13.0-rc1およびkeras == 2.1.3を使用します
そして、これが動作した後
from tensorflow.contrib import lite
converter = lite.TFLiteConverter.from_keras_model_file( 'model.h5' ) # Your model's name
model = converter.convert()
file = open( 'model.tflite' , 'wb' )
file.write( model )
考慮すべき要素が1つあります。must変換する前に、学習フェーズを変更する必要があります。ドロップアウトまたはバッチ正規化がある場合、これは非常に重要です。 'Keras model to tflite' または 'kerasモデルをTensorflow pbに変換した後の問題 の議論をご覧ください