【发布时间】:2017-07-24 15:36:51
【问题描述】:
我在 Nvidia Digits 5 中训练了我的模型,现在我想提取在训练期间生成的准确度和损失图以生成报告。这些数据是否保存在某个地方,以便可以提取这些图的数据,以便我可以在 Python 中绘制它,并可能最终修改这些图以比较不同的模型等?
【问题讨论】:
-
您始终可以在每一步都这样做,但我找不到清晰快速的解决方案。
标签: nvidia-digits
我在 Nvidia Digits 5 中训练了我的模型,现在我想提取在训练期间生成的准确度和损失图以生成报告。这些数据是否保存在某个地方,以便可以提取这些图的数据,以便我可以在 Python 中绘制它,并可能最终修改这些图以比较不同的模型等?
【问题讨论】:
标签: nvidia-digits
我发现的最佳解决方案是查看 HTML 文件或扫描由 Caffe 生成的文本文件 caffe_output.log。文本文件通常存储在 /var/digits/jobs/insert_your_job_id/ 但您也可以只在 linux 系统上运行:
locate caffe_output.log
【讨论】:
转到您的 DIGITS 作业文件夹并找到您的作业的子文件夹。在里面你会找到一个文件status.pickle,它是一个包含你所有工作信息的腌制对象。
你可以像这样在 python 中加载它:
import digits
import pickle
data = pickle.load(open('status.pickle','rb'))
这个对象有点通用,可能包含多个任务。对于典型的分类任务,它可能只有一个,但您仍需要通过data.tasks[0] 访问它。从那里你可以抓住地块:
data.tasks[0].combined_graph_data()
它返回一个有点复杂的dict(不幸的是 - 因为您的网络可以产生许多准确度/损失输出,甚至是自定义输出)。它包含您需要的一切 - 我设法通过以下方式绘制准确性:
plt.plot( data.tasks[0].combined_graph_data()['columns'][2][1:] )
但您可能需要编写一些自定义代码。一如既往,dir() 是您的朋友。
【讨论】: