Есть ли простой способ установить эпохи при использовании TFRecords с оценщиками Tensorflow - PullRequest
0 голосов
/ 23 марта 2019

Есть хороший способ установить эпохи при подаче массивов в оценщик

  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 с оценщиками?

1 Ответ

1 голос
/ 24 марта 2019

Вы можете установить количество эпох с помощью 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) В этом случаевы позволяете Dataset API обрабатывать количество эпох, генерируя ошибку tf.errors.OutOfRange или исключение StopIteration при достижении num_epoch.

...