当前位置: 首页>>编程示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。