我使用具有划时代限制的tf.train.string_input_producer
将数据输入到我的模型中。在训练过程中,我怎样才能得到这一行动的当前时代?
我注意到图中有一些与这个op相关的节点,其中一个包含了时间限制,但是我找不到实际的当前值存储在哪里。这肯定是被追踪到什么地方了?
更普遍地说,如何监视TFRecords管道中的当前时代?
发布于 2017-07-21 06:17:24
我在TF里找不到这个。
我的解决方案是手动完成它,方法是批处理(无限)重复,并按我想要的频率调用我的节点(通过计算数据集中的项目数预先确定,除以批处理大小=一个时代)。
在最近使用tensorflow.contrib.data.TFRecordDataset
发布TF时,这变得更容易了。
d = TFRecordDataset('some_filename.tfrecords')
d = d.map(function_which_parses_your_protobuf_format)
d = d.repeat()
d = d.shuffle()
d = d.batch(batch_size)
然后可以使用以下方法确定数据集的大小
record_count = sum([1 for r in tf.python_io.tf_record_iteration('your_filename.tfrecord')])
这似乎需要更多的工作,但它提供了更好的灵活性,因为您可以使用缓存,这样您就不必预先处理数据集,从而可以将原始的未触摸数据集存储在tfrecord文件中。
https://stackoverflow.com/questions/44090867
复制