如何在 jupyter notebook 中测试数据集迭代器

How to test dataset iterators within jupyter notebook

我想尝试使用不同的函数来解析我的 csv,我正在尝试使用 tf.dataset 迭代器,但我无法让它工作。我使用以下代码的目标是基本上打印第一个已解析的行。

import tensorflow as tf
filenames = 'my_dataset.csv'
dataset = tf.data.TextLineDataset(filenames).skip(1).map(lambda row: parse_csv(row, hparams))
    iterator = dataset.make_one_shot_iterator()
    next_row = iterator.get_next()

with tf.Session() as sess:
    #sess.run(iterator.initializer)
    while True:
        try:
            print(sess.run(next_x))
        except tf.errors.OutOfRangeError:
            break

现在如果我 运行 你会看到我得到 FailedPreconditionError (see above for traceback): GetNext() failed because the iterator has not been initialized. Ensure that you have run the initializer operation for this iterator before getting the next element. 那么我继续取消注释 iterator.initializer 并且我得到另一个错误 ValueError: Iterator does not have an initializer.

需要进行哪些更改才能实际逐步查看我的 parse_csv 调用发生了什么?

你 运行 sess.run(next_x) 而不是 sess.run(next_row).