def do(self, name, is_training=False):
        """ Initialize iterator (unless it's the `train` iterator, which is handled slightly differently)
            and return a feed_dict populated with the appropriate handle for the requested iterator. """
        iterator, handle = self.iterators_and_handles[name]

        sess = tf.get_default_session()

        if name == 'train':
            if not self.train_initialized:
                sess.run(iterator.initializer)
                self.train_initialized = True
        else:
            sess.run(iterator.initializer)

        return {self.handle: handle, self.is_training: is_training}