web-dev-qa-db-ja.com

TensorFlow:SummaryWriterによって書き込まれたログデータを開く

このチュートリアルの 概要とTensorBoard を実行した後、TensorBoardを使用してデータを正常に保存して確認することができました。 TensorBoard以外でこのデータを開くことは可能ですか?

ちなみに、私のアプリケーションは、ポリシー外の学習を行うことです。現在、SummaryWriterを使用して、state-action-rewardの各タプルを保存しています。このデータを手動で保存/トレーニングできることはわかっていますが、TensorFlowの組み込みのログ機能を使用してこのデータを保存/ロードすると便利だと思いました。

15
Veech

2017年3月の時点で、EventAccumulatorツール 移動されました はTensorflowコアからTensorboardバックエンドに移動しました。次のように、Tensorboardログファイルからデータを抽出するために引き続き使用できます。

from tensorboard.backend.event_processing.event_accumulator import EventAccumulator
event_acc = EventAccumulator('/path/to/summary/folder')
event_acc.Reload()
# Show all tags in the log file
print(event_acc.Tags())

# E. g. get wall clock, number of steps and value for a scalar 'Accuracy'
w_times, step_nums, vals = Zip(*event_acc.Scalars('Accuracy'))
22
Chris Cundy

データはエンコードされたprotobufs RecordReader形式だと思います。ファイルからシリアル化された文字列を取得するには、 py_record_reader を使用するか、または TFRecordReader opを使用してグラフを作成し、これらの文字列をprotobufにデシリアライズしてEvent schema を使用します。動作する例が得られたら、このqを更新してください。これに関するドキュメントが不足しているようです。

5

簡単です。データは実際に.csv TensorBoard内の[イベント]タブにあるファイル。 Pandasデータフレームにロードされます。Data download linksボックスをチェックしてください。

より自動化されたアプローチについては、TensorBoard readme を確認してください。

他の場所(iPython Notebookなど)で視覚化するためにデータをエクスポートする場合は、それも可能です。 TensorBoardがデータの読み込みに使用する基本クラスに直接依存できます:python/summary/event_accumulator.py(1回の実行からデータをロードする場合)またはpython/summary/event_multiplexer.py(複数の実行からデータを読み込み、整理しておくため)。これらのクラスは、イベントファイルのグループを読み込み、TensorFlowクラッシュによって「孤立した」データを破棄し、タグごとにデータを整理します。

別のオプションとして、スクリプト(tensorboard/scripts/serialize_tensorboard.py)TensorBoardと同じようにlogdirをロードしますが、サーバーを起動する代わりにすべてのデータをjsonとしてディスクに書き込みます。このスクリプトは、テスト用に「偽のTensorBoardバックエンド」を作成するように設定されているため、端が少し荒れています。

4
nom

私は前のプロジェクトのためにこれらの線に沿って何かをしました。他の人が述べたように、主な成分はテンソルフローイベントアキュムレータです

from tensorflow.python.summary import event_accumulator as ea

acc = ea.EventAccumulator("folder/containing/summaries/")
acc.Reload()

# Print tags of contained entities, use these names to retrieve entities as below
print(acc.Tags())

# E. g. get all values and steps of a scalar called 'l2_loss'
xy_l2_loss = [(s.step, s.value) for s in acc.Scalars('l2_loss')]

# Retrieve images, e. g. first labeled as 'generator'
img = acc.Images('generator/image/0')
with open('img_{}.png'.format(img.step), 'wb') as f:
  f.write(img.encoded_image_string)
2
panmari

tf.train.summaryiteratorを使用することもできます:./logs- Folderでイベントを抽出するには、クラシックスカラーlracclossval_accval_lossが存在し、この要旨を使用できます: tensorboard_to_csv.py

1
Phil