我有一个数据生成器,可以产生训练图像。我想通过使用Python数据生成器将数据馈入Tensorflow模型,但我不知道如何将该生成器转换为Tensorflow张量。我正在寻找类似于Keras的fit_generator()函数的解决方案。
谢谢!
谢谢!
tf.data.Dataset.from_generator()
方法提供了一种将 Python 生成器转换为 tf.Tensor
对象的方式,这些对象评估自生成器中的每个连续元素。
假设您有一个简单的生成器,它生成元组(但也可以生成列表或 NumPy 数组):
def g():
yield 1, 10.0, "foo"
yield 2, 20.0, "bar"
yield 3, 30.0, "baz"
您可以使用tf.data
API将生成器首先转换为tf.data.Dataset
,然后转换为tf.data.Iterator
,最后转换为tf.Tensor
对象的元组。dataset = tf.data.Dataset.from_generator(g, (tf.int32, tf.float32, tf.string))
iterator = dataset.make_one_shot_iterator()
int_tensor, float_tensor, str_tensor = iterator.get_next()
你可以使用int_tensor
, float_tensor
和str_tensor
作为您的TensorFlow模型的输入。有关更多想法,请参阅tf.data
程序员指南。
tf.compat.v1.data.Dataset.from_generator
。我相信TF2有更好的解决方案,但目前我正在使用它。 - MrMartiniterator = dataset.make_one_shot_iterator()
替换为
iterator = iter(dataset)
。 - MrMartin