web-dev-qa-db-ja.com

TensorBoardがすべてのデータポイントを表示しない

私は非常に長いトレーニング(2千万ステップの強化学習)を実行し、1万ステップごとに要約を書いていました。ステップ4Mと6Mの間で、ゲームスコアのTensorBoardスカラーチャートに2つのピークが表示された後、それを実行してスリープ状態にしました。午前中はステップ12M前後で実行されていましたが、先ほど見たステップ4Mと6Mの間のピークはチャートから消えました。ズームインしてみたところ、TensorBoardが(ランダムに)データポイントの一部をスキップしていることがわかりました。私もデータをエクスポートしようとしましたが、ピークを含むいくつかのデータポイントもエクスポートされた.csvで欠落しています。

私は答えを探して、これをTensorFlow githubページで見つけました:

TensorBoardは、リザーバーサンプリングを使用してデータをダウンサンプリングし、RAMにロードできるようにします。タグごとに保持する要素の数をtensorboard/backend/server.pyで変更できます。

誰かがこのserver.pyファイルを変更したことがありますか?ファイルはどこにありますか?ソースからTensorFlowをインストールした場合、ファイルを変更した後に再コンパイルする必要がありますか?

14

このためにソースコードを変更する必要はありません。--samples_per_pluginというフラグがあります。

ヘルプコマンドからの引用

--samples_per_plugin:プラグインのタグごとに保持するサンプル数を明示的に指定する、plugin_name = num_samplesペアのオプションのコンマ区切りリスト。未指定のプラグインの場合、TensorBoardはログに記録された要約を無作為に適切な値にダウンサンプリングして、長時間実行されているジョブのメモリ不足エラーを防止します。このフラグにより​​、そのダウンサンプリングを細かく制御できます。 0はそのタイプのすべてのサンプルを保持することを意味することに注意してください。たとえば、「scalars = 500、images = 0」は500のスカラーとすべての画像を保持します。ほとんどのユーザーはこのフラグを設定する必要はありません。 (デフォルト: '')

したがって、100枚の画像のスライダーが必要な場合は、以下を使用します。

tensorboard --samples_per_plugin images=100

15
Phuc Le

コメントは古くなっています-実際には「デフォルトサイズガイダンス」のtensorboard/backend/application.pyで変更できます。デフォルトでは、1000個のスカラーが格納されます。この制限は任意に増やすか、0に設定してすべてのスカラーを保存できます。

TensorBoardを再コンパイルしたり、ソースからダウンロードしたりする必要はありません。 TensorBoardでこのファイルを自分で変更するだけです。

Virtualenv( buntmac )でpipを使用してTensorFlowをインストールする場合、virtualenvディレクトリ内のapplication.pyへのパスはlib/python2.7/site-packages/tensorflow/tensorboard/backendのようになります。そのファイルを変更する場合は、テンソルボードで新しい設定を取得する必要があります(そのvirtualenvでテンソルボードを実行すると)。あなたが私のようであれば、printステートメントも入れて、変更したコードを実行していることを確認できるようにします:)

14
dandelion