【发布时间】:2019-08-28 02:05:48
【问题描述】:
就像keras documentation 在(图像,掩码)数据生成器中一样,我创建了具有(输入,输出)元组图像的数据生成器。
在我的笔记本电脑上本地运行时(使用 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(...)
目前使用函数来解决它,按照建议here生成新的组合生成器:
def combine_generator(gen1, gen2):
while True:
yield(gen1.next(), gen2.next())
虽然我还是想了解为什么 tensorflow cpu 版本没有出现这个错误,以及为什么 gpu 版本不支持 zip...
【问题讨论】:
-
来自this keras rstudio issue 似乎keras不再接受迭代器,这是zip根据docs返回的内容
-
@Yael N:这个问题现在解决了吗?否则,您能否分享(如果可能)完整的代码,以便我们可以在最后重现它并帮助您解决问题。谢谢!
标签: tensorflow tf.keras