私はKerasでモデルを訓練しました。今私はTensorflowを使ってそれを配備したいと思っています。したがって、私はそのようにSavedModel形式に変換:サービングのTensorflowモデルを最適化する方法
K.set_learning_phase(0)
K._LEARNING_PHASE = tf.constant(0)
# sess = K.get_session()
if not os.path.exists(path):
os.mkdir(path)
export_path = os.path.join(
tf.compat.as_bytes(path),
tf.compat.as_bytes(str(get_new_version(path=path, current_version=int(version)))))
print('Learning phase', K.learning_phase())
print('Exporting trained model to', export_path)
builder = tf.saved_model.builder.SavedModelBuilder(export_path)
model_input = tf.saved_model.utils.build_tensor_info(model.input)
model_output = tf.saved_model.utils.build_tensor_info(model.output)
prediction_signature = (
tf.saved_model.signature_def_utils.build_signature_def(
inputs={'inputs': model_input},
outputs={'output': model_output},
method_name=tf.saved_model.signature_constants.PREDICT_METHOD_NAME))
with K.get_session() as sess:
builder.add_meta_graph_and_variables(
sess=sess, tags=[tf.saved_model.tag_constants.SERVING],
signature_def_map={
'predict':
prediction_signature,
})
builder.save()
を私は(apt-getをインストール経由でインストールTensorflowモデル・サーバー)を提供するTensorflowで使い始めました。しかし私のモデルは376 MBのサイズ(saved_model.pbとvariablesフォルダの両方)であり、予測時間は非常に長く(要求あたり約0.3秒)、rpsが増加するとレイテンシが減少します。
私はモデルを最適化したいのですが、誰かがそれをやるためのトリックを知っていますか?
P.S. Kerasの私のモデルはsave_model(model)
で保存されています。
が答えてくれてありがとう、クリスは、あなたがモデルにFIFIQueueについて言うことができますか? – streamride
そして私はモデルを保存するとグラフがフリーズするのは正しいのですか? – streamride