当使用TFRecords和Tensorflow估计器时,有没有一种简单的方法来设置年代

当使用TFRecords和Tensorflow估计器时,有没有一种简单的方法来设置年代,tensorflow,tfrecord,Tensorflow,Tfrecord,将numpy数组输入估计器时,有一种很好的方法来设置历元 tf.estimator.inputs.numpy_input_fn( x, y=None, batch_size=128, num_epochs=1 , shuffle=None, queue_capacity=1000, num_threads=1 ) 但我无法在TFRecords中找到类似的方法,大多数人似乎只是把它放在一个循环中 i = 0

将numpy数组输入估计器时,有一种很好的方法来设置历元

  tf.estimator.inputs.numpy_input_fn(
     x,
     y=None,
     batch_size=128,
     num_epochs=1 ,
     shuffle=None,
     queue_capacity=1000,
     num_threads=1  
   )
但我无法在TFRecords中找到类似的方法,大多数人似乎只是把它放在一个循环中

 i = 0 
 while ( i < 100000):
   model.train(input_fn=input_fn, steps=100)
i=0
而(i<100000):
模型列车(输入值=输入值,步数=100)

是否有一种干净的方法可以使用估计器显式设置TF记录的历元数?

您可以使用
数据集设置历元数。重复(num\u历元)
。数据集管道输出一个数据集对象,一个批量大小的元组(特征、标签),输入到
model.train()


为了使其工作,您设置了
model.train(steps=None,max_steps=None)
在这种情况下,一旦达到num_epoch,您就让Dataset API通过生成
tf.errors.OutOfRange
error或
StopIteration
异常来处理epoch计数

您正在使用数据集api吗?
dataset = tf.data.TFRecordDataset(file.tfrecords)
dataset = tf.shuffle().repeat()
...
dataset = dataset.batch()