如何在 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)
.
我想尝试使用不同的函数来解析我的 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)
.