Tensorflow 如何使用多个输入正确实现来自生成器的tf.data?

Tensorflow 如何使用多个输入正确实现来自生成器的tf.data?,tensorflow,keras,tf.data.dataset,Tensorflow,Keras,Tf.data.dataset,我为暹罗网络创建了一个自定义生成器,用于向网络三元组图像提供信息: def __getitem__(self, index): ...preprocessing of anchors positive and negative matches return anchors, positives, negatives 从生成器创建tf.data数据集的正确方法是什么? 如果我将三元组包装在元组/列表中,下面的尝试将导致生成器出错 ds = tf.data.Dataset.from_g

我为暹罗网络创建了一个自定义生成器,用于向网络三元组图像提供信息:

def __getitem__(self, index):

...preprocessing of anchors positive and negative matches
    
return anchors, positives, negatives
从生成器创建tf.data数据集的正确方法是什么? 如果我将三元组包装在元组/列表中,下面的尝试将导致生成器出错

ds = tf.data.Dataset.from_generator(
lambda: train_gen, 
output_types=(tf.float32, tf.float32, tf.float32), 
output_shapes=([None,224,224,3], [None,224,224,3], [None,224,224,3])
但是如果我这样做了,我会得到同样的错误,但是当我给它输入
ds
时,我会从模型中得到同样的错误

Layer model expects 3 input(s), but it received 1 input tensors. Inputs received: [<tf.Tensor 'IteratorGetNext:0' shape=(None, None, None, None) dtype=float32>]
层模型需要3个输入,但收到1个输入张量。收到的投入:[]
这个错误是不言自明的。我只是不明白怎么做 如果我做了
[a,p,n]
我在创建数据集时从
tf.data.dataset.from_generator()
函数得到它,但不是在调用
.fit(ds)
时,而是在使用
.predict(ds)


我很感激你能提供的任何观点,谢谢

是否需要添加lambda?你能展示一下你是如何编写你的早期生成器的吗?从外观上看,你在使用keras序列生成器吗?试着打印出你的生成器,检查你是否有3个输入。但是从张量切片上看,你可以接受numpy数组作为输入。你可以使用map函数来读取和处理你的图像,但是也许你可以分享更多的细节,比如你解决了这个问题