![](/img/trans.png)
[英]Unable to pass appropriate shape to tensor flow model with tf.data.Dataset.from_generator
[英]Can the map function supplied to `tf.data.Dataset.from_generator(…)` resolve a tensor object?
我想创建一个tf.data.Dataset.from_generator(...)
数据集。 我需要传入一个Python generator
。
我想像这样将先前数据集的属性传递给生成器:
dataset = dataset.interleave(
map_func=lambda x: tf.data.Dataset.from_generator(generator=lambda: gen(x), output_types=tf.int64),
cycle_length=2
)
我在其中定义gen(...)
以获取值(这是指向某些数据的指针,例如gen
知道如何访问的文件名)。
这失败了,因为gen
接收到张量对象,而不是python / numpy值。
有没有办法将张量对象解析为
gen(...)
内部的值?
交错生成器的原因是,我可以使用其他数据集操作(如.shuffle()
和.repeat()
来操纵数据指针/文件名列表,而无需将其烘焙到gen(...)
函数中,如果我直接从数据指针/文件名列表开始使用生成器,这将是必需的。
我想使用生成器,因为每个数据指针/文件名将生成大量数据值。
答案的确是不。 这是对几个相关的git问题(在撰写本文时尚未解决)的参考,以进一步解决该问题:
TensorFlow现在支持将张量参数传递给生成器:
def map_func(tensor):
dataset = tf.data.Dataset.from_generator(generator, tf.float32, args=(tensor,))
return dataset
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.