我有一个生成数据和标签yield data, labels
的生成器,其中数据是numpy.ndarray
,具有可变行和500个dtype=float32
类型的列,标签是numpy.int64
的整数。
我尝试将此数据传递到TensorFlow from_generator函数以创建TensorFlow数据集:tf.data.Dataset.from_generator
文档中说from_generator函数需要一个参数output_signature
作为输入,但是我很难理解如何构建这个output_signature。
如何为我描述的生成器生成output_signature?
谢谢你,谢谢你
编辑:我使用tf.type_spec_from_value
得到这个:
dataset = tf.data.Dataset.from_generator(
datagen_row,
output_signature=(
tf.TensorSpec(shape=(None, 512), dtype=tf.float32, name=None),
tf.TensorSpec(shape=(), dtype=tf.int64, name=None)
)
)
但是,当第一种数据类型的行数不同时,使用None是否正确?
1条答案
按热度按时间uhry853o1#
如果datagen_row()函数生成input_data,标签格式为500和1,那么output_signature应该是:
其中第一个TensorSpec用于数据格式,第二个用于标签格式。但如果您在此处发布函数+可能的数据示例或数据形状,则会有所帮助。否则很难提供帮助。