在tensorflow中初始化一个基本的一次性迭代器

时间:2017-10-04 21:28:28

标签: python tensorflow iterator tensorflow-datasets

我是tensorflow的新用户,正在使用数据集。作为入门读物,我复制并使用了tensorflow site中的以下示例代码:

# the sample code doesn't tell me where the session comes from, so I wrote these few lines:
def my_initializer():
    return tf.global_variables_initializer()
sess = tf.InteractiveSession()
my_initializer()

# back to sample code
dataset = tf.contrib.data.Dataset.range(100)
iterator = dataset.make_one_shot_iterator()
next_element = iterator.get_next()

for i in range(100):
  value = sess.run(next_element)  # <--- death stalks this line
  assert i == value

在第一次拨打sess.run()时,我看到以下错误:

  

NotFoundError(参见上面的回溯):函数   _make_dataset_989f6fa6未定义。 [[Node:OneShotIterator = OneShotIteratorcontainer =&#34;&#34;,   dataset_factory = _make_dataset_989f6fa6 [],output_shapes = [[]],   output_types = [DT_INT64],shared_name =&#34;&#34;,   _device =&#34; /作业:本地主机/复制:0 /任务:0 / CPU:0&#34;]]

每次尝试使用迭代器时,我都被类似的错误所困扰。这里的目标只是为了处理将数据输入图形的基本机制。我确实有一个图表,但是我已经把它从这篇文章中删除了,因为我根本不认为这是问题所在。

显然,我不是很了解一些事情。有人可以帮帮我吗? 谢谢。

1 个答案:

答案 0 :(得分:1)

如果在创建tf.data.Datasettf.data.Iterator时看到错误消息“功能...未定义”,请升级到较新版本的TensorFlow。错误消息是由TensorFlow 1.2中的错误引起的,该错误已在TensorFlow 1.3中修复。