私はTensorflowサービングで大きな(1.2ギガバイトの大きさ)のモデルを提供するためにしようとしていますが、私は取得しています:サービングTensorflow:大モデル、いるProtobufエラー
2017-12-02 21:55:57.711317: I external/org_tensorflow/tensorflow/cc/saved_model/loader.cc:236] Loading SavedModel from: ...
[libprotobuf ERROR external/protobuf_archive/src/google/protobuf/io/coded_stream.cc:193] A protocol message was rejected because it was too big (more than 1073741824 bytes). To increase the limit (or to disable these warnings), see CodedInputStream::SetTotalBytesLimit() in google/protobuf/io/coded_stream.h.
2017-12-02 21:55:58.563507: I external/org_tensorflow/tensorflow/cc/saved_model/loader.cc:284] Loading SavedModel: fail. Took 852178 microseconds.
2017-12-02 21:55:58.563567: E tensorflow_serving/util/retrier.cc:38] Loading servable: {name: 2 version: 2} failed: Data loss: Can't parse .../saved_model.pb as binary proto
は、私はいくつかの関連する問題を読んで数年前からGithubで、しかし最終的にはServingがprotobufのC++版を使用しているので、それは無関係になった。サービングを使用して大規模なモデルを導入することに関する情報はほとんどないので、どんな情報でも十分です。
Tensorflow Servingはホストマシン上でコンパイルされていました。モデルもpython3を使用していました(まったく何かと関係があるのだろうと思います)。 これに対応するためのクイックフィックスはありますか、またはServing C++ソースを掘り下げてメッセージのサイズを増やす必要がありますか?コメントでリクエストあたり
編集:
私は公式のチュートリアルに従ってモデルを保存します。モデルがとても大きい理由は、埋め込みレイヤーを保存していることです。モデルは、Ubuntuの16.04ホスト上のGitHubからサービングコンパイルTFによって読み取られる
export_path = 'model/1'
builder = saved_model_builder.SavedModelBuilder(export_path)
signature = predict_signature_def(inputs={'input': input},
outputs={'sent': output})
builder.add_meta_graph_and_variables(sess=session,
tags=[tag_constants.SERVING],
signature_def_map={'predict': signature})
builder.save()
:ここでは、とにかく節約コードです。
モデルの書き方と読み方を入力することはできますか? –
@DenizBeker投稿を更新しました – clstl