将 TFRecords 与 Tensorflow Estimator 一起使用时,是否有一种简单的方法来设置纪元
Is there a simple way to set epochs when using TFRecords with Tensorflow Estimators
将 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)
是否有一种简洁的方法来显式设置带有估算器的 TFRecords 的纪元数?
您可以使用 dataset.repeat(num_epochs)
设置纪元数。数据集管道输出一个数据集对象,一个批量大小的元组(特征,标签),输入到 model.train()
dataset = tf.data.TFRecordDataset(file.tfrecords)
dataset = tf.shuffle().repeat()
...
dataset = dataset.batch()
为了使其工作,您设置 model.train(steps=None, max_steps=None)
在这种情况下,您让数据集 API 通过生成 tf.errors.OutOfRange
错误或 StopIteration
异常来处理纪元计数一旦达到 num_epoch。
将 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)
是否有一种简洁的方法来显式设置带有估算器的 TFRecords 的纪元数?
您可以使用 dataset.repeat(num_epochs)
设置纪元数。数据集管道输出一个数据集对象,一个批量大小的元组(特征,标签),输入到 model.train()
dataset = tf.data.TFRecordDataset(file.tfrecords)
dataset = tf.shuffle().repeat()
...
dataset = dataset.batch()
为了使其工作,您设置 model.train(steps=None, max_steps=None)
在这种情况下,您让数据集 API 通过生成 tf.errors.OutOfRange
错误或 StopIteration
异常来处理纪元计数一旦达到 num_epoch。