Nvidia Digits 精度和损失图数据

Nvidia Digits accuracy and loss plots data

我在 Nvidia Digits 5 中训练了我的模型,现在我想提取训练期间生成的准确性和损失图以生成报告。这些数据是否保存在某处,以便可以提取这些图的数据,以便我可以将其绘制在 Python 中,并可能最终修改图以比较不同的模型等?

我找到的最佳解决方案是查看 HTML 文件或扫描 Caffe 生成的文本文件 caffe_output.log。文本文件通常存储在 /var/digits/jobs/insert_your_job_id/ 但您也可以只 运行 在 linux 系统上:

locate caffe_output.log

转到您的 DIGITS 作业文件夹并找到作业的子文件夹。在里面你会发现一个文件 status.pickle,这是一个包含你所有工作信息的 pickled 对象。 您可以像这样在 python 中加载它:

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

此对象有些通用,可能包含多个 任务。对于典型的分类任务,它可能只有一个,但您仍然需要通过 data.tasks[0] 访问它。从那里你可以抓住情节:

data.tasks[0].combined_graph_data()

其中 returns 有点令人费解 dict(不幸的是 - 因为您的网络可以产生许多 accuracy/loss 输出,甚至是自定义输出)。它包含你需要的一切 - 我设法通过以下方式绘制准确性:

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

但您可能需要编写一些自定义代码。一如既往,dir() 是你的朋友。