我正在使用TensorFlow数据集API(https://www.tensorflow.org/guide/datasets),尤其是与TensorFlow Estimators API(https://www.tensorflow.org/guide/datasets_for_estimators)结合使用,建议使用生成器函数。
我在编写生成器函数时遇到麻烦,该函数产生具有不同输出类型(例如,int,float和字符串的混合)的特征。我想出了如何指定与生成器不同的feature + label类型。 ..但仅当所有标签类型都相同时。
但是...假设您要发出多种特征类型(例如,在典型的import85 TensorFlow演示中,您将汽车制造商和模型作为字符串发出(后来被归类为下游< / em>),将Highway-MPG设置为float32,将门数设置为int。如何在数据集from_generator上指定一个调用各种要素类型?
数据集= tf.data.Dataset。 from_generator(generator = self._generator, output_types =(tf.float32,tf.int32), output_shapes =(tf.TensorShape([无]),tf.TensorShape([1])))
我已经尝试了使用的明显方法 output_types =(((tf.float32,tf.float32,tf.string,tf.string),tf.int32) 没有运气。任何帮助将不胜感激。
答案 0 :(得分:1)
不可能有一个以上的tf.Tensor数据类型。但是,可以将任意数据结构序列化为字符串并将其存储在tf.Tensors中。
因此,您可能需要将它们存储为字符串,然后使用诸如decode_raw之类的函数对其进行求值。