當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Python tf.compat.v1.data.Iterator.get_next用法及代碼示例

用法

get_next(
    name=None
)

參數

  • name (可選。)創建的操作的名稱。

返回

返回下一個元素。

在圖形模式下,您通常應該調用一次此方法並將其結果用作另一個計算的輸入。然後,一個典型的循環將對該計算的結果調用tf.Session.run。當 Iterator.get_next() 操作引發 tf.errors.OutOfRangeError 時,循環將終止。以下骨架顯示了在構建訓練循環時如何使用此方法:

dataset = ...  # A `tf.data.Dataset` object.
iterator = dataset.make_initializable_iterator()
next_element = iterator.get_next()

# Build a TensorFlow graph that does something with each element.
loss = model_function(next_element)
optimizer = ...  # A `tf.compat.v1.train.Optimizer` object.
train_op = optimizer.minimize(loss)

with tf.compat.v1.Session() as sess:
  try:
    while True:
      sess.run(train_op)
  except tf.errors.OutOfRangeError:
    pass

注意:多次調用Iterator.get_next() 是合法的,例如當您在一個步驟中將不同的元素分發到多個設備時。但是,當用戶在訓練循環的每次迭代中調用 Iterator.get_next() 時,就會出現一個常見的陷阱。 Iterator.get_next() 向圖中添加ops,執行每個op分配資源(包括線程);因此,在訓練循環的每次迭代中調用它都會導致速度減慢並最終耗盡資源。為了防止這種結果,我們會在使用次數超過固定的可疑閾值時記錄警告。

相關用法


注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.compat.v1.data.Iterator.get_next。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。