2017-06-08 55 views
1

私はNvidia Digits 5で自分のモデルを訓練しました。レポートの訓練中に生成された精度と損失のプロットを抽出したいと思います。このデータはどこかに保存されているので、これらのプロットのデータを抽出して、Pythonでプロットし、おそらく最終的に異なるモデルなどを比較するためにプロットを変更することができますか?Nvidia Digitsの精度と損失のプロットデータ

+0

いつでもこれを行うことができますが、私が見つけることができない明確かつ高速な解決策です。 – Jan

答えて

1

私が見つけた最も良い解決策は、HTMLファイルを見たり、Caffeによって作成されたテキストファイルcaffe_output.logをスキャンすることです。テキストファイルは通常、/ insert_your_job_idは/ var /数字/ジョブに保存されている/いますが、単にLinuxシステム上で実行することができます:あなたのDIGITSジョブフォルダに

locate caffe_output.log 
1

移動し、あなたの仕事のサブフォルダを検索します。あなたの中にはファイルstatus.pickleがあります。これはあなたの仕事のすべての情報を含んでいるピクルされたオブジェクトです。

import digits 
import pickle 
data = pickle.load(open('status.pickle','rb')) 

このオブジェクトはやや一般的なものであり、複数のタスクが含まれる場合があります。 あなたはそうのようなPythonでそれを読み込むことができます。典型的な分類作業の場合、それは単なるものに過ぎませんが、それでもdata.tasks[0]を介してアクセスする必要があります。そこからプロットをつかむことができます返す

data.tasks[0].combined_graph_data() 

をやや複雑dict(残念ながら - あなたのネットワークは、多くの精度/損失出力、などにもカスタムのものを作ることができるので)。これは、しかし、あなたが必要なものがすべて含まれています - 私は精度をプロットするために管理:

plt.plot(data.tasks[0].combined_graph_data()['columns'][2][1:])

が、それはあなたがカスタムコードのビットを記述する必要があります可能性があります。いつものように、dir()はあなたの友人です。

関連する問題