我可以从训练文件夹中删除events.out.tfevents.XXXXXXXXXX.computer_name文件吗

Var*_*til 5 ubuntu tensorflow tensorboard

我正在训练fast_rcnn_inception模块,以对自定义数据集进行对象检测。在训练目录中,我们找到名为eval_0的文件夹,并且tensorflow生成了events.out.tfevents.xxxxxx文件。

培训目录结构如下

+training_dir
    +eval_0
     -events.out.tfevents.1542309785.instance-1  1.2GB
     -events.out.tfevents.1542367255.instance-1  5.3GB
     -events.out.tfevents.1542369886.instance-1  3.6GB
     -events.out.tfevents.1542624154.instance-1  31MB
     -events.out.tfevents.1543060258.instance-1  19MB
     -events.out.tfevents.1543066775.instance-2  1.6GB
 -events.out.tfevents.1542308099.instance-1  17MB
 -events.out.tfevents.1542308928.instance-1  17MB
 -events.out.tfevents.1542366369.instance-1  17MB
 -events.out.tfevents.1542369000.instance-1  17MB
 -events.out.tfevents.1542623262.instance-1  17MB
 -events.out.tfevents.1543064936.instance-2  17MB
 -events.out.tfevents.1543065796.instance-2  17MB
 -events.out.tfevents.1543065880.instance-2  17MB
 -model.ckpt-96004.data-00000-of-00001
 -model.ckpt-96004.data-00000-of-00001
 -model.ckpt-96004.index
 -model.ckpt-96004.meta
 -model.ckpt-96108.data-00000-of-00001
 -model.ckpt-96108.index
 -model.ckpt-96108.meta
Run Code Online (Sandbox Code Playgroud)

按我的理解,tfevents在eval_0文件夹是夏日文件评价和tfevents文件training_dir是夏日文件的培训

我已经中断了几次培训过程,并从最近的检查站继续。我也了解重新启动训练过程会生成新的tfevents文件。

我的问题如下:

  • 为什么训练tfevents_files的大小相同,但是如果 eval_0 / tfevents_files的大小不同呢?

  • 为什么中断训练在训练文件夹中生成新的tfevents_file,但在eval_0情况下却未观察到相同的内容

  • 我可以删除所有tfevents在文件eval_0除了最新的一个?它会影响训练或进化历史吗?

y.s*_*hyk 9

tfevents文件对于训练不是必需的,可以安全地删除。

在 Tensorflow 中,tfevents由 FileWriters 创建,通常用于存储摘要输出。以下是有关如何使用 tf.summaries 的一些常见示例:

  • 在训练开始之前存储张量流图的描述
  • 为每个训练步骤写一个损失函数的值
  • 每个时期存储一次层的激活或权重直方图
  • 在每次验证时存储一次网络输出图像的示例
  • 存储整个验证集的平均精度(或任何其他指标)

此信息对于培训不是必需的,因此可以删除。然而,它可能会在调试或研究模型的行为时派上用场。TensorBoard 是读取和可视化存储在 tfevent 文件中的数据的最常用工具。任何人都可以使用 protobuf 协议手动读取和解释 TFRecord 文件,它是 Python、C++ 和其他的实现。

tfevents 以 TFRecord 格式编写。TFRecord是一种用于存储二进制记录序列的简单格式。如果文件已经存在,Tensorflow 总是将新的事件/摘要附加到文件的末尾。这说明文件增长。

由于tensorflow/models/reserach/object_detection训练和评估事件文件提供的优化例程的实现细节有不同的行为。即,直接使用 FileWriter 创建评估事件文件,只要存在,它将重用 log_dir 中最新的现有事件文件。实现也有大量定期收集的摘要,这增加了训练期间的事件文件。

另一方面,对于训练例程,开发人员在TPU上完成训练时明确指定一个空的摘要列表。这意味着事件文件只创建一次,以后不再使用。当在非 TPU 硬件上执行训练或为训练启用了summary_gradients选项时,此行为可能会有所不同。