8

与(图像,掩码)数据生成器中的 keras 文档一样,我创建了具有(输入,输出)元组图像的数据生成 器
在我的笔记本电脑上本地运行时(使用 tensorflow 1.13.1),它运行没有问题,但是在服务器上运行时(使用 tensorflow- gpu 1.13.1),我收到错误:

AttributeError: 'zip' object has no attribute 'shape'

就像在示例中一样,在使用 flow_from_directory 创建了两个生成器之后:

from tensorflow import keras

...

input_gen = input_datagen.flow_from_directory(
        directory=os.path.join(path_in, dirname),
        class_mode=None,
        color_mode=color_mode,
        batch_size=batch_size,
        target_size=(img_size, img_size),
        seed=seed_in)

我在 keras 文档中将它们组合在一起:

train_generator = zip(input_gen, output_gen)

并将它们提供给 fit_generator(...)

目前使用函数解决了它,以生成新的组合生成器,如下所示

def combine_generator(gen1, gen2):
    while True:
        yield(gen1.next(), gen2.next())   

虽然我仍然想了解为什么 tensorflow cpu 版本没有出现此错误,以及为什么 gpu 版本不支持 zip...

4

1 回答 1

0

Tensorflow 1.13 中对 fit_generator 的支持似乎已更改。如本期所述,解决方法,

代替

train_generator = zip(input_gen, output_gen)

train_generator = (pair for pair in zip(input_gen, output_gen))
于 2021-01-15T06:30:31.880 回答