問題タブ [tensorflow-serving]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
tensorflow - テンソルフロー用のプロトコルバッファコンパイラを使用して、.proto ファイルから python .pb2.py ファイルを適切に再生成するにはどうすればよいですか?
例として incepetion_inference.proto を使用して、次のコマンドを使用して inception_inference.pb2.py ファイルを再生成しようとしました。
protoc inception_inference.proto --python_out=./
新しく生成されたファイル inception_inference.pb2.py を、コンパイルから最初に生成されたファイルと比較すると、ライセンス通知と、以下を含む下部部分を除いて同一です。
などなど…。
Bazel ビルド システムの一部がこれを .pb2.py ファイルに挿入していると推測していますが、これがどこで行われているかはわかりません。
このファイルを適切に再生成する方法を知っている人はいますか? 明らかに、これを理解することは、独自の .proto ファイルを生成するために必要なステップです。
ありがとう!
tensorflow - tensorflow サービングで parsey のいとこをデプロイする方法
Tensorflowの下でSyntaxNetを使用して、「Parsey's Cousins」(https://github.com/tensorflow/models/blob/master/syntaxnet/universal.mdを参照)として利用可能なモデルを展開する方法を誰かが説明できますか給仕?Parsey だけを展開するだけでもかなり複雑な作業であり、実際にはどこにも文書化されていませんが、追加の 40 言語に対してこれを行うにはどうすればよいでしょうか?
database - PNG画像からTFRecordsファイルを作成する方法
1 週間前に TensorFlow を使い始めたばかりで、基本的な問題がいくつかあります。
主なものは、すべてのデータを含む TFRecords を作成する方法が見つからなかったことです。このプロセスは、数百万の 32x32 ピクセルの画像で自分のネットワークをトレーニングするために必要であることを理解しました。
「input_pipeline」を参照する多くのチュートリアルと多くのドキュメントを見つけましたが、それらのチュートリアルのいずれも、自分のイメージを使用して自分のデータベースを作成する方法を明確に説明していません。
いくつかの主要なフォルダーといくつかのサブフォルダーがあり、それぞれに約 300,000 個の png 画像があり、ラベルは画像の名前 (0 または 1 - バイナリ分類) にあります。
これらの画像を取得する方法は、(グロブ) 行を使用することです。
だから私の質問は:
これらの画像とそのラベルを含む TFRecords ファイルを作成するにはどうすればよいですか?
私は本当にあなたの助けに感謝します! 私はほぼ 2 日間この問題に悩まされていましたが、MNIT と ImageNet に関する具体的な回答しか見つかりませんでした。
ありがとう!
scikit-learn - Tensorflow Scikit Flow get GraphDef for Android (*.pb ファイルを保存)
Android アプリで Tensorflow アルゴリズムを使用したいと考えています。Tensorflow Android の例は、モデル定義と重み (*.pb ファイル) を含む GraphDef をダウンロードすることから始まります。これは、私の Scikit Flow アルゴリズム (Tensorflow の一部) からのものである必要があります。
一見すると、classifier.save('model/') と言うだけで簡単に思えますが、そのフォルダーに保存されるファイルは *.ckpt、*.def、そしてもちろん *.pb ではありません。代わりに、*.pbtxt とチェックポイント (終了なし) ファイルを処理する必要があります。
私はかなり長い間そこに立ち往生しています。何かをエクスポートするコード例を次に示します。
取得するファイルは次のとおりです。
- チェックポイント
- グラフ.pbtxt
- model.ckpt-1.meta
- model.ckpt-1-00000-of-00001
- model.ckpt-200.meta
- model.ckpt-200-00000-of-00001
私が見つけた多くの可能な回避策では、GraphDef を変数に含める必要があります (Scikit Flow の方法がわからない)。または、Scikit Flow を使用する必要がないように思われる Tensorflow セッション。
tensorflow - 分散テンソルフロー タイムライン トレースが QueueDequeue 操作を PS 操作としてマークするのはなぜですか?
AWS ubuntu マシンのクラスターで tensorflow 分散開始モデルを実行し、タイムライン トレースを出力しています。
ワーカー マシンによって生成されたタイムラインを表示すると、次のように表示されます: ワーカー マシンのタイムライン トレース
右側の QueueDequeue 操作に注意してください。タイムラインは、パラメーター サーバーである /job:ps/replica:0/task:0/cpu:0 の一部であると示しています。
画像に示すように、ScatterUpdate は QueueDequeue の直後にあるため、この操作は、ワーカーがトークンをデキューして分散更新を実行しようとする同期レプリカ オプティマイザー操作に対応していると思います: https://github.com/tensorflow/tensorflow/blob /master/tensorflow/python/training/sync_replicas_optimizer.py#L412
ただし、その場合、パラメーター サーバーではなく、ワーカーがこの操作を実行する必要があります。パラメータサーバーがこれを実行しているとタイムラインに表示されるのはなぜですか?
CPUのみでtensorflow 0.11を使用しています。
bazel - 「bazel test tensorflow_serving/...」の実行中に Bazel テストが失敗する
https://tensorflow.github.io/serving/docker.htmlの指示に従って、Windows マシンで Docker を使用して TensorFlow Serving をセットアップしようとしています。
コンテナーを正常にビルドして実行し、TensorFlow サービング サブモジュールのクローンを作成しました。ただし、コマンドの実行中に
"bazel test tensorflow_serving/..."
エラー
Linking of rule: '//tensorflow_serving/batching/test_util:puppet_batch_scheduler_test' failed:gcc failed: error executing command /usr/bin/gcc ....
表示されています
完全なスタック トレースを下の画像に示します。
どんな助けでも大歓迎です。
tensorflow - Tensorflow Serving: リクエストのバッチ処理でレイテンシが高くなる
私は TF Serving を GKE にデプロイする実験を行っており、高可用性のオンライン予測システムを作ろうとしています。複数のリクエストをまとめてバッチ処理することで、レイテンシを最適化しようとしていました。ただし、レイテンシーは改善されるどころか、むしろ悪化しているようです。
- モデルは CNN で、長さ約 50 の入力ベクトルです。
- TF Serving は、6 つの標準ノードを備えた Kubernetes クラスターで実行されます
- サイズ 5 と 10 のバッチを試しました。TF Servingのバッチ処理の実装
(batch_size, input_size)
は使用しませんでした。(1, input_size)
私の直感では、GPU を使用してスループットを使用する場合にバッチ処理が最大のメリットをもたらしますが、CPU で使用しても速度が低下することはありません。スローダウンは以下のチャートに示されています - req/s はむしろ予測/秒です。つまり、20 はサーバーへの 4 つまたは 2 つのリクエストに分割されます。
リクエスト数が少ない場合、これがクラスター全体にワークロードを均等に分散しないことを理解していますが、60 または 120 を見ても、レイテンシーは単に高くなります。
なぜそうなのか、何か考えはありますか?