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函数来读取和处理你的图像,但是也许你可以分享更多的细节,比如你解决了这个问题