我正在进行一项非常长的训练(强化学习,每步20M),每10k步写一次总结。在步骤4M和6M之间,我在TensorBoard标量图表中看到了2个峰值来获得游戏分数,然后我让它运行并进入睡眠状态。在早上,它在大约12M步骤运行,但我之前看到的步骤4M和6M之间的峰值从图表中消失了。我试图放大并发现TensorBoard(随机?)跳过了一些数据点。我还尝试导出数据,但导出的.csv中也缺少包括峰值在内的一些数据点。
我寻找答案,并在TensorFlow github页面中找到了这个:
TensorBoard使用油藏采样对数据进行降采样,以便将其加载到RAM中。您可以在tensorboard / backend / server.py中修改每个标签保留的元素数量。
有没有人修改过这个server.py文件?我在哪里可以找到该文件,如果我从源代码安装了TensorFlow,我是否必须在修改文件后重新编译它?
答案 0 :(得分:12)
评论已过期 - 实际上可以在tensorboard / backend / application.py中修改"默认大小指南"。默认情况下,它存储1000个标量。您可以任意增加该限制,或将其设置为0以存储每个标量。
您不需要重新编译TensorBoard,甚至无需从源代码下载。您可以自己在TensorBoard中修改此文件。
如果您在virtualenv(ubuntu,mac)中使用pip安装TensorFlow,那么在您的virtualenv目录中,application.py的路径应该类似于lib/python2.7/site-packages/tensorflow/tensorboard/backend
。如果您修改该文件,则应在tensorboard中获取新设置(当您在该virtualenv中运行tensorboard时)。如果您喜欢我,那么您也会打印一份打印声明,以确保您能够运行修改后的代码:)
答案 1 :(得分:7)
您不必为此更改源代码,有一个名为--samples_per_plugin
的标志。
从帮助命令引用
-samples_per_plugin:可选的以逗号分隔的plugin_name = num_samples对列表,用于显式 指定该插件的每个标签要保留多少个样本。对于未指定的插件,TensorBoard 随机将记录的摘要降采样到合理的值,以防止长时间的内存不足错误 正在运行的工作。该标志允许对该下采样进行精细控制。请注意,0表示保留全部 该类型的样本。例如,“标量= 500,图像= 0”保留500个标量和所有图像。最 用户无需设置此标志。 (默认:“”)
因此,如果您希望具有100张图像的滑块,请使用:
tensorboard --samples_per_plugin images=100