如何在TensorFlow 2中还原tf.data.Dataset位置(状态)

我正在tf.data.Dataset上训练模型。我使用的机器没有正常运行时间的保证。当我受到干扰时,我希望能够从中断的地方恢复训练。特别是,无论是否受到干扰,我都希望确保使用相同的小批处理顺序。

在TensorFlow 1.x中,可以通过在数据集上创建迭代器并保存/恢复tf.data.experimental.make_saveable_from_iterator(iterator)返回的SaveableObject来实现此目的:

在TensorFlow 2.0.0中,我似乎无法完成该工作:

import tensorflow as tf
ds = tf.data.Dataset.range(10)
tf.data.experimental.make_saveable_from_iterator(iter(ds))
# ==>
# Traceback (most recent call last):
#   File "dataset.py",line 3,in <module>
#     tf.data.experimental.make_saveable_from_iterator(iter(ds))
#   File "/home/me/.local/lib/python3.5/site-packages/tensorflow_core/python/data/experimental/ops/iterator_ops.py",line 72,in make_saveable_from_iterator
#     return _Saveable(iterator._iterator_resource)  # pylint: disable=protected-access
#   File "/home/me/.local/lib/python3.5/site-packages/tensorflow_core/python/data/experimental/ops/iterator_ops.py",line 82,in __init__
#     iterator_resource.name + "-state")
#   File "/home/me/.local/lib/python3.5/site-packages/tensorflow_core/python/framework/ops.py",line 1090,in name
#     "Tensor.name is meaningless when eager execution is enabled.")
# AttributeError: Tensor.name is meaningless when eager execution is enabled.

在TensorFlow 2中有没有办法做到这一点?

pengfei1 回答:如何在TensorFlow 2中还原tf.data.Dataset位置(状态)

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3161388.html

大家都在问