ubuntu - Can I delete events.out.tfevents.XXXXXXXXXX.computer_name files from training folder
问题描述
I am training faster_rcnn_inception module for object detection on custom dataset. In training directory,we found folder called eval_0 and tensorflow generated events.out.tfevents.xxxxxx files.
Training Directory structure as follows
+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
As per my understanding, tfevents files in eval_0 folder are summery files of evaluation and tfevents files in training_dir are summery files of training.
I have interrupted training process several times and continued from recent checkpoint. I also understand restarting training process generates new tfevents files.
My Questions as follows:
Why training tfevents_files have same size, but in case if eval_0/tfevents_files size varies ?
Why interrupting training generates new tfevents_file in training folder, but same not observed in case of eval_0?
Can I delete all tfevents files in eval_0 except latest one? Does it affect on training or evolution history?
解决方案
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 硬件上执行训练或为训练启用summarise_gradients选项时,此行为可能会有所不同。
推荐阅读
- c# - 尝试在 startup.cs 中激活服务时无法解析服务类型
- java - Spring Rest 应用程序未启动(NullPointerException)
- python - 创建具有多个条件的 if 语句,这些条件涉及列表中的特定 df 列和字符串字符
- ios - 在 UITextView 中保存数据
- javascript - React-Redux 连接没有从 Provider 获取存储
- javascript - 如何只导出excel中选定的行?数据表
- excel - 如何将工作表中的数据作为 DataFrame 返回?
- c# - 如何在 C# 中更改组合框的外观
- javascript - 将画布交换为 div
- javascript - 如何更改此功能,以便每次单击时一次只能播放一首随机歌曲?(JavaScript)