¿Cómo usar los iteradores inicializables de tf.data dentro de input_fn de un tf.estimator?

Me gustaría gestionar mi entrenamiento con untf.estimator.Estimator pero tiene algunos problemas para usarlo junto con eltf.data API

Tengo algo como esto:

def model_fn(features, labels, params, mode):
  # Defines model's ops.
  # Initializes with tf.train.Scaffold.
  # Returns an tf.estimator.EstimatorSpec.

def input_fn():
  dataset = tf.data.TextLineDataset("test.txt")
  # map, shuffle, padded_batch, etc.

  iterator = dataset.make_initializable_iterator()

  return iterator.get_next()

estimator = tf.estimator.Estimator(model_fn)
estimator.train(input_fn)

Como no puedo usar unmake_one_shot_iterator para mi caso de uso, mi problema es queinput_fn contiene un iterador que debe inicializarse dentro demodel_fn (aquí, yo usotf.train.Scaffold para inicializar operaciones locales).

Además, entendí que no solo podemos usarinput_fn = iterator.get_next de lo contrario, las otras operaciones no se agregarán al mismo gráfico.

¿Cuál es la forma recomendada de inicializar el iterador?

Respuestas a la pregunta(1)

Su respuesta a la pregunta