2017-10-04 33 views
0

我是張量流的新用戶,並且正在使用數據集。作爲底漆,我已經複製並使用從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 (see above for traceback): Function _make_dataset_989f6fa6 is not defined. [[Node: OneShotIterator = OneShotIteratorcontainer="", dataset_factory=_make_dataset_989f6fa6[], output_shapes=[[]], output_types=[DT_INT64], shared_name="", _device="/job:localhost/replica:0/task:0/cpu:0"]]

我被咬傷通過類似每次嘗試使用迭代器時都會出錯。這裏的目標只是簡單地掌握將數據提供給圖表的基本機制。我確實有一張圖,但是我沒有把它留在這篇文章中,因爲我根本不認爲這是問題。

顯然,我不是很理解一些非常簡單的東西。有人可以幫我嗎? 謝謝。

+0

開始簡單:做[創建一個迭代器的例子](https://www.tensorflow.org/programmers_guide/datasets#creating_an_iterator)(拷貝 - 粘貼到一個空文件,只添加了import語句)爲你工作?什麼是您的tensorflow版本? – Drop

+0

我發現問題:我在代碼中將會話傳遞給eval(session = sess)。 –

+0

只需檢查:您使用的是TensorFlow 1.2還是1.3?從錯誤消息中,我認爲您可能遇到了1.3版中修復的錯誤。 – mrry

回答

0

如果您在創建tf.data.Datasettf.data.Iterator時看到錯誤消息「功能...未定義」,請升級到較新版本的TensorFlow。該錯誤消息是由TensorFlow 1.2中的一個錯誤引起的,TensorFlow 1.3中修復了這個錯誤。

+0

即使1.4現在可用,希望OP解決這個問題:p – LYu