Huc*_*inn 24 tensorflow tfrecord
是否有可能从.tfrecords
文件中获取记录总数?与此相关,人们如何通常跟踪训练模型时已经过的时期数?虽然我们可以指定batch_size
和num_of_epochs
,但我不确定是否可以直接获得诸如current epoch
每个时期的批次数等值- 这样我就可以更好地控制培训的进展情况.目前,我只是使用一个肮脏的黑客来计算这个,因为我事先知道我的.tfrecords文件中有多少记录和我的miniatches的大小.感谢任何帮助..
drp*_*png 31
要计算记录数,您应该可以使用tf.python_io.tf_record_iterator
.
c = 0
for fn in tf_records_filenames:
for record in tf.python_io.tf_record_iterator(fn):
c += 1
Run Code Online (Sandbox Code Playgroud)
为了跟踪模型训练,张量板就派上用场了.
Sal*_*ali 17
不,这是不可能的.TFRecord不存储有关存储在其中的数据的任何元数据.这个文件
表示一系列(二进制)字符串.格式不是随机访问,因此它适用于流式传输大量数据,但如果需要快速分片或其他非顺序访问则不适用.
如果需要,可以手动存储此元数据或使用record_iterator获取数字(您需要遍历所有记录:
sum(1 for _ in tf.python_io.tf_record_iterator(file_name))
Run Code Online (Sandbox Code Playgroud)
如果您想知道当前的纪元,可以从张量板或通过从循环中打印数字来实现.
由于tf.io.tf_record_iterator已被弃用,萨尔瓦多·达利 (Salvador Dali)的精彩回答现在应该阅读
tf.enable_eager_execution()
sum(1 for _ in tf.data.TFRecordDataset(file_name))
Run Code Online (Sandbox Code Playgroud)
根据tf_record_iterator上的弃用警告,我们还可以使用Eager Execution 来计算记录数。
#!/usr/bin/env python
from __future__ import print_function
import tensorflow as tf
import sys
assert len(sys.argv) == 2, \
"USAGE: {} <file_glob>".format(sys.argv[0])
tf.enable_eager_execution()
input_pattern = sys.argv[1]
# Expand glob if there is one
input_files = tf.io.gfile.glob(input_pattern)
# Create the dataset
data_set = tf.data.TFRecordDataset(input_files)
# Count the records
records_n = sum(1 for record in data_set)
print("records_n = {}".format(records_n))
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
11410 次 |
最近记录: |