我正在训练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
按我的理解,tfevents在eval_0文件夹是夏日文件评价和tfevents文件training_dir是夏日文件的培训。
我已经中断了几次培训过程,并从最近的检查站继续。我也了解重新启动训练过程会生成新的tfevents文件。
我的问题如下:
为什么训练tfevents_files的大小相同,但是如果eval_0 / tfevents_files的大小不同呢?
为什么中断训练会在训练文件夹中生成新的tfevents_file,但在eval_0的情况下却未观察到相同的内容?
我可以删除所有tfevents在文件eval_0除了最新的一个?它会影响训练或进化历史吗?
tfevents文件对于培训不是必需的,可以安全地删除。
在Tensorflow中,tfevent由FileWriters创建,通常用于存储摘要输出。以下是一些有关如何使用tf.summaries的常见示例:
此信息对于培训不是必需的,因此可以删除。但是,它对于调试或研究模型的行为可能会派上用场。TensorBoard是读取和可视化存储在tfevent文件中的数据的最常用工具。任何人都可以使用protobuf协议及其Python,C ++和其他实现来手动读取和解释TFRecord文件。
tfevent以TFRecord格式编写。TFRecord是一种用于存储二进制记录序列的简单格式。如果文件已经存在,Tensorflow总是将新事件/摘要添加到文件末尾。这解释了文件增长。
由于tensorflow / models / reserach / object_detection提供的优化例程的实施细节,训练和评估事件文件的行为不同。即,评估事件文件是直接使用FileWriter创建的,只要存在,它将在log_dir中重用最新的现有事件文件。实施过程中还定期收集大量摘要,这会增加培训期间的事件文件。
另一方面,对于训练例程,当在TPU上进行训练时,开发人员会明确指定一个空的摘要列表。这意味着事件文件只创建一次,以后再也不会使用。在非TPU硬件上进行训练或启用了summary_gradients选项进行训练时,此行为可能会有所不同。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句