web-dev-qa-db-ja.com

テンソルフローインスタンスを殺した後にテンソルボードデータを「リセット」する方法

私が作成したcnnモデルのさまざまなハイパーパラメーターをテストしていますが、Tensorboardでサマリーを表示するときに多少の煩わしさがあります。問題は、連続した実行でデータが「追加」されるだけであるため、「ステップ」ではなく「相対」として情報を表示しない限り、関数は奇妙な重ね合わせになります。こちらをご覧ください:

X Type: Step

X Type: Relative

テンソルボードのプロセスを強制終了してログファイルを消去しようとしましたが、十分ではないようです。

では、質問は、この情報をどのようにリセットすればよいですか?

ありがとう!!

50
mathetes

注:投稿したソリューション(TensorBoardのログファイルを消去してプロセスを強制終了する)は機能しますが、トレーニングに関する履歴情報が破壊されるため、お勧めできません。

代わりに、新しいトレーニングジョブごとに(最上位ログディレクトリの)新しいサブディレクトリに書き込むことができます。次に、TensorBoardは各ジョブを新しい「実行」と見なし、ニース比較ビューを作成して、モデルの反復間でトレーニングがどのように異なるかを確認できます。

例については、以下を参照してください: https://www.tensorflow.org/tensorboard/

31
dandelion

OK、何らかの理由で以前は機能しませんでしたが、今では機能しました:

Tensorboardのログファイルを消去し、そのプロセスを強制終了する必要があります

プロセスを強制終了した後、fuser 6006/tcp -kポート6006を解放し(Linuxを使用している場合)、再びテンソルボードを起動します。

19
mathetes

はい、最終的にはこの側面はポジティブだと思います。
例として、私のスクリプトでは、datetimeを介して新しい実行ログを自動化します。

from datetime import datetime
now = datetime.now()
logdir = "tf_logs/.../" + now.strftime("%Y%m%d-%H%M%S") + "/"

次に、TensorBoardを実行しているときに、親ディレクトリでTensorBoardを実行していれば、異なる実行のオン/オフをクリックできます。

know前回の実行を気にせず、それを自分の人生から除外したい場合は、はい、イベントファイルを削除し、TensorBoardを強制終了して再起動するという異常に長いプロセスに耐える必要があります。

16
SuaveSouris

私は同様の問題を抱えていましたが、計算グラフが重複しています:呼び出したときにテンソルボードに追加されたばかりです

writer.add_graph(graph=sess.graph)

私の場合、ログファイルに関するものではなく、Jupyter Notebookコンテキストに関するものでした。

グラフ定義を使用してJupyterセルを複数回実行した後、グラフはリセットされず、コンテキストとして重複として表示されることがわかったため、追加しました

tf.reset_default_graph()

計算グラフの作成を開始する前。

それが役立つことを願っています。

5

この問題の解決策を見つけました。各Events.outファイルをログディレクトリ内の個別のフォルダーに配置するだけです。そして、異なる色で実行されるたびに、テンソルボードで素敵な視覚化が得られます。

4
Abdo Eldesokey

次のスニペットをコードに追加すると、テンソルボードが自動的にリセットされます。

if tf.gfile.Exists(dirpath):
   tf.gfile.DeleteRecursively(dirpath) 

これにより、以前のログが削除されます。

1

同様の問題があり、エラーが発生しました: 'プレースホルダーテンソル' dense_input 'の値にdtype floatおよびshape'を入力する必要があります。この特定の問題は議論されました here 。私のために働いた提案は使用しました:

from keras.backend import clear_session
# Before instantiating a tf.data.Dataset obj & before model creation, call:
clear_session()

また、各モデルのTensorBoard log_dirに一意の名前を使用していることを確認してください。次に、すべてのモデルを表示するには、ログファイルの親ディレクトリにあるターミナルからTensorBoardを実行します。

tensorboard --logdir <projDir>/logs/tf_log
0
CubeBot88